docker rmiコマンドの使い方(実例付)CE対応
docker rmiコマンドの使い方の紹介ページです。Docker CE ver18.06.1に対応しております。
このコマンドは、Dockerホスト内に格納されているDockerイメージを削除することが出来ます。また、Dockerイメージに付与したタグの削除を行う場合にも使用します。
それでは以下で詳細に解説いたします。
本記事の目次
docker rmiコマンドのフォーマットとオプション
フォーマット
docker rmi [オプション] 削除対象Dockerイメージ [ 削除対象Dockerイメージ . . .]
主なオプション一覧
-f, --force
指定したDockerイメージを強制的に削除します
--no-prune
タグ付けされていない親イメージを削除しません
docker rmiコマンドの主な使い方
指定したDockerイメージを削除する
Dockerホスト内に、以下のDockerイメージがあります。(タグ名を省略した場合はデフォルトでlatestを指定したことになります)
$ docker images ubuntu REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 104bec311bcd 2 days ago 128.9 MB
このDockerイメージをdocker rmiコマンドで削除してみます。
$ docker rmi ubuntu:latest
コマンド実行後、以下のような内容が出力されます。
Untagged: ubuntu:latest Untagged: ubuntu@sha256:7a64bc9c8843b0a8c8b8a7e4715b7615e4e1b0d8ca3c7e7a76ec8250899c397a Deleted: sha256:104bec311bcdfc882ea08fdd4f5417ecfb1976adea5a0c237e129c728cb7eada Deleted: sha256:f086cebe1dd257beedaa235e4eef280f603273b4c15cbe6db929ab64f100c302 Deleted: sha256:84cfefd72f9a8be0b92adfb93664e9bc8d740829152f1ab76b2a8393d56d8db8 Deleted: sha256:f7309529402984109c74a95ee5d68c0a5aa57241070890a09c76be48a8cd773f Deleted: sha256:23f1e9516742d68eaa2439dd50693bf7294fcd64d69d9643e51a4be64aa0b97c Deleted: sha256:32d75bc97c4173417b54eb2a417ea867637c3014dc1b0dd550f11ab490cbb09f
「Deleted:」の行が6行出力されておりますが、これは削除したubuntuのDockerイメージが6個のイメージレイヤで構成されていたからです。
docker imagesコマンドで、ubuntuのDockerイメージが消えていることを確認します。
$ docker images ubuntu REPOSITORY TAG IMAGE ID CREATED SIZE
先ほど表示されていたubuntuのDockerイメージが表示されなくなりました。
イメージIDを指定してDockerイメージを削除する
先ほどはDockerイメージ名を指定して削除しましたが、イメージIDを指定して削除することも可能です。
先ほどを同じubuntuのDockerイメージを、今度はイメージIDを指定して削除してみます。
$ docker images ubuntu REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 104bec311bcd 2 days ago 128.9 MB
イメージIDは「104bec311bcd」ですので、これを指定して削除します。
$ docker rmi 104bec311bcd
コマンド実行後、以下のような内容が出力されます。
Untagged: ubuntu:latest Untagged: ubuntu@sha256:7a64bc9c8843b0a8c8b8a7e4715b7615e4e1b0d8ca3c7e7a76ec8250899c397a Deleted: sha256:104bec311bcdfc882ea08fdd4f5417ecfb1976adea5a0c237e129c728cb7eada Deleted: sha256:f086cebe1dd257beedaa235e4eef280f603273b4c15cbe6db929ab64f100c302 Deleted: sha256:84cfefd72f9a8be0b92adfb93664e9bc8d740829152f1ab76b2a8393d56d8db8 Deleted: sha256:f7309529402984109c74a95ee5d68c0a5aa57241070890a09c76be48a8cd773f Deleted: sha256:23f1e9516742d68eaa2439dd50693bf7294fcd64d69d9643e51a4be64aa0b97c Deleted: sha256:32d75bc97c4173417b54eb2a417ea867637c3014dc1b0dd550f11ab490cbb09f
docker imagesコマンドで確認します。
$ docker images ubuntu REPOSITORY TAG IMAGE ID CREATED SIZE
削除されていることが確認できました。
Dockerイメージに付与されているタグを削除する
以下のように、ubuntuのDockerイメージubuntu:latestと、「test」タグが付与されているubuntu:testの2つが格納されてます。
$ docker images ubuntu REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 104bec311bcd 2 days ago 128.9 MB ubuntu test 104bec311bcd 2 days ago 128.9 MB
この2つのDockerイメージは「IMAGE ID」が同一ですので、物理的には同じDockerイメージです。
タグとは、Dockerイメージに付けられた別名のことを指します。タグを付与する方法は、本サイト内の別記事「docker tagコマンドの使い方(実例付)」を参照していただければと思います。
では、ubuntu:testの方を削除してみたいと思います。以下のコマンドを実行します。
$ docker rmi ubuntu:test
コマンド実行後、以下のように出力されます。
Untagged: ubuntu:test
これは、ubuntu:testのタグが削除されたことを示してます。docker imagesコマンドで確認してみます。
$ docker images ubuntu REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 104bec311bcd 2 days ago 128.9 MB
先ほどは存在していたubuntu:testが消えていることが確認できました。
デフォルトでは削除出来ない複数のタグが付与されているDockerイメージを強制削除する
以下のように3つのタグ付けされているDockerイメージがあります。
$ docker images ubuntu REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 104bec311bcd 2 days ago 128.9 MB ubuntu test 104bec311bcd 2 days ago 128.9 MB ubuntu test2 104bec311bcd 2 days ago 128.9 MB
「IMAGE ID」が同一ですので、3つとも同じDockerイメージであることが解ります。
仮に、このIMAGE IDが「104bec311bcd」のDockerイメージが不要になって、3つとも削除したいとします。
以下のようにdocker rmiコマンドを3回実行すれば可能であることは、直ぐお分かりだとおもいます。
$ docker rmi ubuntu:latest $ docker rmi ubuntu:test $ docker rmi ubuntu:test2
もしくは、以下のように3つ並べて記述しても削除可能です。
$ docker rmi ubuntu:test2 ubuntu:test ubuntu:latest
しかし、イメージ一覧内から削除対象のDockerイメージ名を全部選択するのは煩雑なので、「IMAGE ID」を指定して削除することが出来れば、安全且つ簡単に削除できそうな感じがすると思います。
ではやってみましょう。
$ docker rmi 104bec311bcd
残念ながら以下のようなエラーが出てしまいます。
Error response from daemon: conflict: unable to delete 104bec311bcd (must be forced) - image is referenced in one or more repositories
複数から参照されているから削除できない旨のメッセージが出力されました。docker rmiコマンドは、デフォルトでは、複数個タグ付けされているDockerイメージを、イメージIDを使って削除することは出来ません。
この場合は、「-f」オプションを使用して、強制的に削除します。
$ docker rmi -f 104bec311bcd
コマンド実行後は、以下のような内容が出力されました。
Untagged: ubuntu:latest Untagged: ubuntu:test Untagged: ubuntu:test2 Untagged: ubuntu@sha256:7a64bc9c8843b0a8c8b8a7e4715b7615e4e1b0d8ca3c7e7a76ec8250899c397a Deleted: sha256:104bec311bcdfc882ea08fdd4f5417ecfb1976adea5a0c237e129c728cb7eada Deleted: sha256:f086cebe1dd257beedaa235e4eef280f603273b4c15cbe6db929ab64f100c302 Deleted: sha256:84cfefd72f9a8be0b92adfb93664e9bc8d740829152f1ab76b2a8393d56d8db8 Deleted: sha256:f7309529402984109c74a95ee5d68c0a5aa57241070890a09c76be48a8cd773f Deleted: sha256:23f1e9516742d68eaa2439dd50693bf7294fcd64d69d9643e51a4be64aa0b97c Deleted: sha256:32d75bc97c4173417b54eb2a417ea867637c3014dc1b0dd550f11ab490cbb09f
docker imagesコマンドで存在確認を行います。
$ docker images ubuntu REPOSITORY TAG IMAGE ID CREATED SIZE
削除されてます。
これは、docker rmiコマンドに、削除したいDockerイメージを並べて記述して実行した時と同じ結果になります。
但し、削除対象のDockerイメージを使用してDockerコンテナが生成されている場合は、「-f」を指定して削除しようとしてもエラーになりますのでご注意ください。
以上でdocker rmiコマンドの紹介を終わります。
ご指摘、ご要望などが御座いましたらコメントいただけるとうれしいです!
他のDockerコマンドの実例付紹介記事は、本サイト内の別記事「Dockerのコマンドの一覧(ver1.12対応版)(オリジナルな実例付き)」をご参照ください。
ご訪問ありがとうございました!