SoftLayerでDocker環境を整えるコツ
SoftLayerのオブジェクト・ストレージでDockerを活用する方法
docker-registryを使い、自分の仮想サーバーやベアメタル・サーバー上でレジストリを稼働させることができます。SoftLayerのオブジェクト・ストレージと連携することで、更に便利にDockerを扱えます。
Docker registryとSoftLayer
Dockerコンテナ・イメージを保管する場所は、ローカル環境だけではなく、公開レジストリのDockerHubが提供されています。しかし、DockerHubは海外のデータセンターにあるため、アップロードやダウンロードするには時間が掛かりがちです。一方のローカル環境上のDocker Registryであれば、コンテナ・イメージの取得(pull)や保存(push)がストレス無く行えます。
更にSoftLayerのオブジェクト・ストレージを使うことで、次のような利点があります。
- オブジェクト・ストレージなのでデータ容量を気にする必要がありません
- プライベート・ネットワーク内の通信は、転送料の課金対象外です
- プライベート・ネットワーク内で安全にコンテナ・イメージの管理やアップロード・ダウンロードできます
オブジェクト・ストレージの利点は、何よりも容量を気にせずに利用できる点です。仮想サーバーや外部ストレージを使う場合であれば、容量の上限を心配する必要がありますし、実際に使用していなくても容量あたりの料金が必要です。オブジェクト・ストレージであれば、実際に使った容量分しか課金対象になりません。
さらにSoftLayerのオブジェクト・ストレージは、プライベート・ネットワーク内の通信料金が無料です。そのため、プライベート側から利用することで、コンテナ・イメージのアップロードやダウンロードを頻繁に行う場合も、料金を気にする必要はありません。
また、図3のように、Docker Registryがセットアップ済みのイメージ・テンプレート作成しておく方法も効果的です。コンテナを操作や開発時だけサーバーを起動し、作業が終わればオブジェクト・ストレージ上にコンテナ・イメージを格納することができます。
事前準備
SoftLayerのオブジェクト・ストレージのAPIを確認します。SoftLayerのポータルから「Storage」→「Object Storage」を選び、対象となるアカウントとデータセンターを選択します。切り替わった画面に「View Credentials」のリンクがありますので、ここをクリックすると「Username:」「API Key (Password):」が表示されますので、エディタ等に控えておきます。
また、同じ画面で「Add Container」をクリックし、Docker Registryが使用するファイルを保管するためのオブジェクト・ストレージ・コンテナを作成しておきます(例:docker-registry)。
Docker Registoryセットアップ手順
SoftLayerのオブジェクト・ストレージに対応したDocker Registoryを作成し、実際に動かすまでの流れを見ていきます。
まず、Docker-registryが動作するDockerイメージが提供されていますので、これをSoftLayer上で動くように調整します。任意の作業用ディレクトリを作成したあとに、ファイル名「Dockerfile」を作成し、内容は次の通りにします。
このDockerfileを使って、コンテナをビルドします。
作成したコンテナを使って、Docker Registryを起動します。初回実行時など、進行状況を確認するにはdocker run -it 〜と実行する方法が手軽です。デーモンとして常駐したい場合は-itを-dに置き換えると便利です。
Docker レジストリを試すには
先の手順の通り起動できれば、docker pushやdocker pullコマンドにオブジェクト・ストレージを使うことができます。ここでは、先ほど作成したregistry-swiftイメージをpushしてみましょう。
docker tagコマンドを使い、ローカルのDocker Registryを意味する「127.0.0.1:5000」のタグをつけてからdocker pushを実行します。
pushしたイメージは、pullコマンドでダウンロードすることも可能です。
まとめ
Dockerの開発環境はSoftLayer上で簡単に構築できるだけでなく、オブジェクト・ストレージと機能を組みあわせ、便利に運用することもできます。ご興味がありましたら、お試しいただければと思います。
参考情報
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- ownCloudで実現するセキュアな無制限ストレージ on Softlayer
- GitLabを用いた継続的インテグレーション
- クラスキャット、SoftLayer対応のプライベートクラウドサービスとDockerベースのクラウドストレージサービスを提供開始
- ZabbixでSoftLayerを監視してみよう!
- OSSで実現する HPC on SoftLayer
- Rancherのカスタムカタログの作成
- Dockerfileを使いこなす(2)
- クラスキャット、OpenStack Kiloベースのプライベートクラウドソリューションを提供開始
- Dockerfileを使いこなす(1)
- OpenStack Juno on SoftLayer by RDO