Dockerイメージにタグを付けてタイプミスを作りたいとしましょう。画像自体を削除せずにタグを削除するにはどうすればよいですか?マンページもDockerドキュメントもタグの削除について言及していません。
docker tag 0e5574283393 my-imaj
docker tag 0e5574283393 my-image
# docker untag my-imaj # There is no "docker untag"!
画像に複数のタグが付けられている場合は、docker rmi
はタグを削除しますが、画像は削除しません。
だからあなたの例では...
# docker rmi my-imaj
...そのタグを削除し、画像を他の正しいタグとともに残します。
docker rmi REPOSITORY:TAG
を実行してタグを削除します。
REPOSITORY
とTAG
の値は、docker images
の出力から得られます。
例えば
$ docker rmi my-image:0e5574283393
Untagged: my-image:0e5574283393
空のDockerリポジトリから始めて、次のように入力して画像をインポートします。
#docker run hello-world
docker images
コマンドを実行して、イメージを一覧表示します。結果は次のようになります。
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 7bc42cc48a84 4 weeks ago 316MB
次に、docker tag
コマンドを実行して、v1というイメージタグを作成します。
#docker tag hello-world:latest hello-world:v1
docker images
コマンドを実行すると、次のような新しいタグが表示されます。
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 7bc42cc48a84 4 weeks ago 316MB
hello-world v1 7bc42cc48a84 4 weeks ago 316MB
特定のタグを削除するには(元の質問に答えるため)、docker rmi hello-world:v1
を実行します。ここで、v1はタグ名です。出力は次のようになります。
#docker rmi hello-world:v1
Untagged: hello-world:v1
docker images
コマンドを実行して、イメージを一覧表示します。画像タグが削除されていることに注意してください。
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 7bc42cc48a84 4 weeks ago 316MB
タグ名で他の画像にタグを付けると、現在の画像からタグが削除されます。