Djangoroidの奮闘記

python,django,angularJS1~三十路過ぎたプログラマーの奮闘記

Dockerを使ってみる Docker レジストリ編

概要

Dockerを使ってみる。

参考書籍

やったこと

プライベートレジストリの構築・管理

Dockerレジストリの構築

  • registryのimageをpullする。
docker pull registry:2.0 # 2.0を指定しないと、0系の最新版になってしまうので注意
  • 5000番ポートを使って、ポートを転送する。registory imageを使って、コンテナを起動・生成する。
$ docker run -d -p 5000:5000 registry:2.0

# 稼働状況を確認
$ docker ps

これでローカルホストPC内にDockerレジストリの構築が完了。

イメージのアップロード

  • レジストリにアップ用のwebserverという名前のimageをbuildしてみる。
$ docker build -t webserver .
  • Dockerレジストリにアップロードするには、以下のルールでイメージにタグをつける
$ docker tag [ローカルのイメージ名] [DockerレジストリのIPアドレスor ホスト名:ポート番号]/[イメージ名]

#上記の例に従うと以下のようなコマンドを実行する。
$ docker tag webserver localhost:5000/httpd
  • docker pushでこのtagがついたイメージをregistory にpushする。
$ docker push localhost:5000/httpd
  • 一旦、localのimageを削除してみる。
$ docker rmi webserver
$ docker rmi localhost:5000/httpd

イメージのダウンロード

docker pull localhost:5000/httpd

Amazon S3を使ったイメージ共有

S3の準備をする。

  • S3にbucketを作成する
  • S3のbucketにアクセスできるuserを作成する。

プライベートリポジトリを起動して、環境変数を入れておく

$ docker run -d \ # コンテナ起動
--name registry \ # image
-p 5000:5000 \
-e REGISTRY_STORAGE=s3 \
-e REGISTRY_STORAGE_S3_ACCESSKEY= ***** \
-e REGISTRY_STORAGE_S3_SECRETKEY= ***** \
-e REGISTRY_STORAGE_S3_BUCKET= ***** \
-e REGISTRY_STORAGE_S3_REGION= **** \
-e REGISTRY_STORAGE_S3_ROOTDIRECTORY=/v2 \ # rootdirectoryのpath
registry:2.0

イメージをアップロード/ダウンロードする

$ docker push localhost:5000/httpd #タグづけされたimageをアップロードする。
$ docker pull localhost:5000/httpd