こんばんはエンジニアの眠れない夜です。
Dockerで一度ビルドしたイメージのイメージ名やタグ名を変更したいことはありませんか?
特にタグ名はバージョン
とlatest
を同時に作成するかたも多いのではないでしょうか?
全く変更を加えていない状態ならもう一度build
をしても数秒〜1分以内に終わるのでそれでも良いのですが、変更を加えてしまった場合はそうもいきません。過去に作成したイメージに対してタグだけ変更したいという場合には利用できませんね(;´Д`)
そういうことで簡単にイメージ名とタグ名を変更する方法をご紹介します。
Dockerでイメージ名とタグ名を変更する方法
まずはdocker images
でイメージのIDを確認します。
イメージIDを確認したらこちらを置き換えるだけです。
dokcer tag IMAGE_ID IMAGE_NAME:TAG
例えば変更したい
・イメージID:c52af594ab69
・イメージ名:test_image
・タグ名:test
だった場合は下記のように書き換えればOKです。
docker tag c52af594ab69 test_image:test
試しにdocker images
で確認すると同じc52af594ab69
というIDでイメージ名とタグ名がtest_image
、test
になっていることが確認できます。
タグ名を指定せずに
docker tag c52af594ab69 test_image
とした場合、タグは自動でlatest
になります。
DockerHubにプッシュする場合
せっかくなのでDockerHubにプッシュする場合のイメージ名の設定もご紹介します。
DockerHubにプッシュするにはUSER_NAME/PROJECT_NAME:TAG
を指定する必要があるので、先程のこちらのイメージ名とタグ名を
dokcer tag IMAGE_ID IMAGE_NAME:TAG
このように変更します。
dokcer tag IMAGE_ID USER_NAME/IMAGE_NAME:TAG
USER_NAMEをスラッシュで区切って追加しただけなので簡単ですね(^_^;)
※ USER_NAMEはDockerHubのユーザーネームです。まだDockerHubのアカウントを持っていない場合はここから登録できます。
まとめ
少し話はそれてしまいましたが、Dockerのイメージ名とタグ名の変更方法はこれでバッチリですね(^^)v
dokcer tag IMAGE_ID IMAGE_NAME:TAG
サクッとイメージ名とタグを変更してDockerを便利に使いましょう!
docker tagコマンドは実行した際にイメージがコピーされる仕様のようです(Docker version 19.03.5)
イメージIDが同じものが2つ存在することになるので、もとのイメージは削除したほうがいいのでしょうか?
習志野さん
コメントありがとうございます。
念の為、確認してみたのですがコンテナIDが同じなのでコピーされていると言うより
同じイメージに別々の名前をつけているという感じです。
容量を消費するわけではないので消す必要はないと思います。
その辺りは気持ちの問題です(^_^;)
でタグが消えます。同じイメージを共有しているのでこの時点ではイメージは消えません。
とするとイメージを共有しているものは他にないのでタグを削除して、イメージも一緒に消えます。
ご参考になれば幸いです。