強制オプションを使用してイメージ ID でイメージを削除する
このステップでは、Docker イメージのイメージ ID を使用してイメージを削除する方法、特に必要に応じて強制オプション (-f
または --force
) を使用する方法を学びます。イメージ ID で削除することは、削除するイメージを正確に指定したい場合、特に複数のタグが同じイメージを指している場合に便利です。
まず、イメージ ID で削除できるイメージを取得しましょう。ubuntu
イメージを使用します。すでに持っている場合は、取得はすぐに完了します。
docker pull ubuntu
次に、イメージを一覧表示して、ubuntu
イメージのイメージ ID を取得します。
docker images
出力から ubuntu
イメージを見つけ、その IMAGE ID
をメモします。これは 16 進数の長い文字列になります。イメージを一意に識別するには、最初の数文字(通常は 3 文字以上)だけで十分です。
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 270000000000 2 weeks ago 77.8MB
まず、強制オプションを使用せずにイメージ ID でイメージを削除してみましょう。YOUR_IMAGE_ID
を docker images
の出力からメモした実際のイメージ ID に置き換えます。
docker rmi YOUR_IMAGE_ID
イメージが実行中または停止したコンテナによって使用されていない場合、このコマンドは正常に実行され、イメージが削除されます。ただし、このイメージを基にしたコンテナがある場合、イメージがコンテナによって使用されているため削除できないことを示すエラーメッセージが表示されます。
強制オプションの使用方法を示すために、まず ubuntu
イメージを基にしたコンテナを実行しましょう。
docker run -d ubuntu sleep 3600
このコマンドは、Ubuntu コンテナをデタッチドモード (-d
) で実行し、1 時間(sleep 3600
)実行し続けます。
次に、強制オプションを使用せずに再度イメージ ID で ubuntu
イメージを削除してみましょう。
docker rmi YOUR_IMAGE_ID
次のようなエラーメッセージが表示されるはずです。
Error response from daemon: conflict: unable to remove repository reference "ubuntu:latest" (must force) - image is referenced by one or more containers: 000000000000 (created ...)
このエラーは、コンテナがイメージを使用しているために発生します。コンテナによって使用されているイメージを削除するには、強制オプション (-f
) を使用する必要があります。
では、強制オプションを使用してイメージ ID でイメージを削除しましょう。YOUR_IMAGE_ID
を実際のイメージ ID に置き換えます。
docker rmi -f YOUR_IMAGE_ID
強制オプションを使用すると、Docker はコンテナによって使用されているイメージでも削除します。Docker はまずイメージを使用しているすべてのコンテナを停止して削除し、その後イメージ自体を削除します。出力には、イメージとそのレイヤーが削除されたことが表示されます。
Untagged: ubuntu:latest
Deleted: sha256:2700000000000000000000000000000000000000000000000000000000000000
Deleted: sha256:0000000000000000000000000000000000000000000000000000000000000000
... (more Deleted lines)
再度イメージを一覧表示して、ubuntu
イメージが削除されたことを確認しましょう。
docker images
ubuntu
イメージはリストに表示されなくなっているはずです。
強制オプションの使用は注意が必要です。これを使用すると、コンテナが確認なしに停止され、削除されます。