docker-registryを使う
docker-registryを使う
コンテナイメージファイルをプライベートサーバに保存したいときはdocker-registryですね。gitlabみたいな感じです。
「registry_container」と言うレジストリ用のコンテナを作成して、その中にイメージファイル「target_image」を格納してみます。
レジストリを作成する
docker-registryのイメージを取得します。
docker pull registry
イメージファイルの確認します。
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry latest 2d4f4b5309b1 4 weeks ago 26.2MB
レジストリコンテナを作成します。
docker run -d -p 5000:5000 --name registry_container registry
格納するイメージを作成する
dockerfileを作成します。
vi dockerfile
#下記を記述
MAINTAINER Houdoukyokucho
CMD /sbin/init
ビルドしてイメージを作成します。
docker build -t localhost:5000/target_image .
ビルドしたイメージを確認します。
localhost:5000/target_image latest 7fee8b9a4102 44 seconds ago 203MB
registry latest 2d4f4b5309b1 4 weeks ago 26.2MB
pushとpull
「target_image」を「registry_container」にpushします。
docker push localhost:5000/target_image
「target_image」を削除します。
docker rmi localhost:5000/target_image
「target_image」が削除されているのを確認します。
registry latest 2d4f4b5309b1 4 weeks ago 26.2MB
レジストリ内のイメージファイルを確認します。
curl http://localhost:5000/v2/_catalog
{"repositories":["target_image"]}
レジストリの「registry_container」からイメージファイル「target_image」をpullします。
docker pull localhost:5000/target_image
pullしたファイルがあるかを確認します。
docker images
localhost:5000/target_image latest 7fee8b9a4102 9 minutes ago 203MB
registry latest 2d4f4b5309b1 4 weeks ago 26.2MB
無事target_imageをpull出来た事が確認できました。
レジストリコンテナ内のイメージ削除
レジストリコンテナを作成する。
docker run -e REGISTRY_STORAGE_DELETE_ENABLED=true -d -p 5000:5000 --name registry_container registry
コンテナのヘッダー情報を取得して「Digest情報」を確認する。
#curl -i -H "Accept: application/vnd.docker.distribution.manifest.v2+json" http://[IP:PORT]/v2/[イメージ名]/manifests/[タグ名] | grep Docker-Content-Digest
curl -i -H "Accept: application/vnd.docker.distribution.manifest.v2+json" http://localhost:5000/v2/target_image/manifests/latest | grep Docker-Content-Digest
Docker-Content-Digest: sha256:8d5c5c4734caeb0a607987928c3dc92618995039425f9a3d6a5e7e0868163e6a
レジストリコンテナ内のイメージを削除する。
curl -X DELETE -D - http://localhost:5000/v2/target_image/manifests/sha256:8d5c5c4734caeb0a607987928c3dc92618995039425f9a3d6a5e7e0868163e6a
HTTP/1.1 202 Accepted
Docker-Distribution-Api-Version: registry/2.0
X-Content-Type-Options: nosniff
Date: Tue, 21 Jul 2020 09:51:03 GMT
Content-Length: 0
残る場合...
docker exec -it registry_container sh
rm -rf /var/lib/registry/docker/registry/v2/repositories/target_image
docker restart registry_container
参考:
・Docker Registryを構築する
・Dockerのプライベートレジストリからimageを削除する方法
・Docker Registry の使い方
ディスカッション
コメント一覧
まだ、コメントがありません