SoftLayerのオブジェクト・ストレージでDockerを活用する方法

Sponsored

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」を作成し、内容は次の通りにします。

FROM registry:0.7.3
RUN pip install docker-registry-driver-swift==0.0.1
RUN sed -i '91i¥    swift_auth_version: _env:OS_AUTH_VERSION' /docker-registry/config/config_sample.yml

このDockerfileを使って、コンテナをビルドします。

$ sudo docker build -t registry-swift:0.7.3 .

作成したコンテナを使って、Docker Registryを起動します。初回実行時など、進行状況を確認するにはdocker run -it 〜と実行する方法が手軽です。デーモンとして常駐したい場合は-itを-dに置き換えると便利です。

$ sudo docker run -it ¥
    -e SETTINGS_FLAVOR=swift ¥
    -e OS_AUTH_URL='https://tok02.objectstorage.service.networklayer.com/auth/v1.0' ¥
    -e OS_AUTH_VERSION=1 ¥
    -e OS_USERNAME='<オブジェクト・ストレージのUsername>' ¥
    -e OS_PASSWORD='<オブジェクト・ストレージのAPI Key>' ¥
    -e OS_CONTAINER='<オブジェクト・ストレージで作成したコンテナ名>' ¥
    -e GUNICORN_WORKERS=8 ¥
    -p 127.0.0.1:5000:5000 ¥
    registry-swift:0.7.3

Docker レジストリを試すには

先の手順の通り起動できれば、docker pushやdocker pullコマンドにオブジェクト・ストレージを使うことができます。ここでは、先ほど作成したregistry-swiftイメージをpushしてみましょう。

docker tagコマンドを使い、ローカルのDocker Registryを意味する「127.0.0.1:5000」のタグをつけてからdocker pushを実行します。

$ sudo dokcer tag registry-swift:0.7.3 127.0.0.1:5000/registry-swift:0.7.3
$ sudo docker push 127.0.0.1:5000/registry-swift:0.7.3

pushしたイメージは、pullコマンドでダウンロードすることも可能です。

$ sudo docker pull 127.0.0.1:5000/registry-swift:0.7.3

まとめ

Dockerの開発環境はSoftLayer上で簡単に構築できるだけでなく、オブジェクト・ストレージと機能を組みあわせ、便利に運用することもできます。ご興味がありましたら、お試しいただければと思います。

参考情報

Sponsored
この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30