Memo

メモ > サーバ > 各論: Docker > イメージを Docker Hub に保存(イメージの更新とlatestタグの指定)

■イメージを Docker Hub に保存(イメージの更新とlatestタグの指定)
■latestタグについて 以下で「refirio/test:0.1」を取得&起動できるとして、
$ docker container run --name dockerhub_test -v $PWD/docker/php_create_file/code:/var/www/html -p 80:80 -d refirio/test:0.1
以下のようにタグを指定せずに起動しようとすると、 「refirio/test:latest」を取得しようとして、かつ「そんなイメージは無い」というエラーになる
$ docker container run --name dockerhub_test -v $PWD/docker/php_create_file/code:/var/www/html -p 80:80 -d refirio/test Unable to find image 'refirio/test:latest' locally docker: Error response from daemon: manifest for refirio/test:latest not found: manifest unknown: manifest unknown. See 'docker container run --help'.
手動で「latest」というタグを付与してプッシュしておくことにより、 タグを指定しなかった場合に取得されるイメージを指定できる ■latestタグの付与 以下でlatestタグを付与する
$ docker image tag refirio/test:0.1 refirio/test:latest $ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE refirio/test latest 780c832a5fcc 39 minutes ago 414MB refirio/test 0.2 780c832a5fcc 39 minutes ago 414MB
そのままプッシュしてみる
$ docker image push refirio/test:latest
以下で確認すると、「0.1」と「latest」のタグを確認できた https://hub.docker.com/r/refirio/test/tags?page=1&ordering=last_updated 以下でlatestタグの付いた refirio/test を削除できる
$ docker image rm refirio/test
以下で refirio/test:latest を取得できる(latest を明示的に指定しても同じ)
$ docker container run --name dockerhub_test -v $PWD/docker/php_create_file/code:/var/www/html -p 80:80 -d refirio/test
■latestタグの更新 Dockerfile を以下のように編集
FROM php:8.1-apache RUN touch /root/test1.txt RUN touch /root/test2.txt
イメージをビルド
$ docker image build -t php:create_file docker/php_create_file $ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE php create_file 780c832a5fcc 5 seconds ago 414MB refirio/test latest 2f5eeeeb3991 26 hours ago 414MB
タグ付けしてプッシュ
$ docker image tag php:create_file refirio/test:0.2 $ docker image push refirio/test:0.2
この状態で latest を再取得しても 0.2 よりも古い latestタグを上書きしてプッシュ
$ docker image tag refirio/test:0.2 refirio/test:latest $ docker image push refirio/test:latest
イメージを再取得
$ docker image rm refirio/test:0.1 $ docker image rm refirio/test:0.2 $ docker image rm refirio/test:latest $ docker container run --name dockerhub_test -v $PWD/docker/php_create_file/code:/var/www/html -p 80:80 -d refirio/test
最新の内容を取得できている

Advertisement