docker rmiコマンドの使い方(実例付)CE対応


 docker rmiコマンドの使い方の紹介ページです。Docker CE ver17.12.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対応版)(オリジナルな実例付き)」をご参照ください。

 ご訪問ありがとうございました!


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください