株式会社博展 - 東芝実績動画
目次:
- 未使用のオブジェクトをすべて削除する
- Dockerコンテナーの削除
- 1つ以上のコンテナーを削除する
- 停止したコンテナをすべて削除します
- フィルターを使用してコンテナーを削除する
- すべてのコンテナを停止して削除する
- Dockerイメージの削除
- 1つ以上の画像を削除する
- ぶら下がり画像を削除する
- 未使用の画像をすべて削除する
- フィルターを使用して画像を削除する
- Dockerボリュームの削除
- 1つ以上のボリュームを削除する
- 未使用のボリュームをすべて削除する
- Dockerネットワークの削除
- 1つ以上のネットワークを削除します
- 未使用のネットワークをすべて削除します
- フィルターを使用してネットワークを削除する
- 結論
Dockerを使用すると、アプリケーションを迅速に構築、テスト、および展開でき、事実上どこでも実行できる自給自足型のコンテナとして使用できます。
Dockerは、コンテナ、イメージ、ボリューム、ネットワークなどの未使用のオブジェクトを、明示的に削除しない限り削除しません。 Dockerを使用すると、大量のディスクスペースを消費する未使用のオブジェクトを簡単に蓄積し、Dockerコマンドによって生成される出力を乱雑にすることができます。
このガイドは、Dockerユーザーがシステムを整理し、未使用のDockerコンテナ、イメージ、ボリューム、およびネットワークを削除してディスク容量を解放するための「チートシート」として機能します。
未使用のオブジェクトをすべて削除する
docker system prune
コマンドは、停止したすべてのコンテナー、ぶら下がりイメージ、および未使用のネットワークをすべて削除します。
docker system prune
続行するように求められます。
-f
または
--force
フラグを使用して、プロンプトをバイパスします。
WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all dangling images - all build cache Are you sure you want to continue?
docker system prune --volumes
WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all volumes not used by at least one container - all dangling images - all build cache Are you sure you want to continue? y
Dockerコンテナーの削除
Dockerコンテナは、
--rm
フラグを使用してコンテナを起動しない限り、停止しても自動的に削除されません。
1つ以上のコンテナーを削除する
1つ以上のDockerイメージを削除するには、
docker container rm
コマンドに続けて、削除するコンテナーのIDを使用します。
docker container ls
コマンドに
-a
フラグを渡すことで、すべてのコンテナーのリストを取得できます。
docker container ls -a
出力は次のようになります。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cc3f2ff51cab centos "/bin/bash" 2 months ago Created competent_nightingale cd20b396a061 solita/ubuntu-systemd "/bin/bash -c 'exec …" 2 months ago Exited (137) 2 months ago systemd fb62432cf3c1 ubuntu "/bin/bash" 3 months ago Exited (130) 3 months ago jolly_mirzakhani
削除するコンテナのコンテナ
CONTAINER ID
がわかったら、それを
docker container rm
コマンドに渡します。 たとえば、上記の出力にリストされている最初の2つのコンテナを削除するには、次を実行します。
docker container rm cc3f2ff51cab cd20b396a061
Error response from daemon: You cannot remove a running container fc983ebf4771d42a8bd0029df061cb74dc12cb174530b2036987575b83442b47. Stop the container before attempting removal or force remove.
停止したコンテナをすべて削除します
除去コマンドを実行する前に、次のコマンドを使用して、除去されるすべての非実行(停止)コンテナーのリストを取得できます。
docker container ls -a --filter status=exited --filter status=created
停止したコンテナをすべて削除するには、
docker container prune
コマンドを使用します。
docker container prune
続行するように求められます。
-f
または
--force
フラグを使用して、プロンプトをバイパスします。
WARNING! This will remove all stopped containers. Are you sure you want to continue? y
フィルターを使用してコンテナーを削除する
docker container prune
コマンドを使用すると、フィルタリングフラグ
--filter
を使用して、条件に基づいてコンテナを削除できます。
この記事の執筆時点で、現在サポートされているフィルターは
until
および
label
です。 複数の
--filter
フラグを使用して、複数のフィルターを使用できます。
たとえば、12時間以上前に作成されたすべての画像を削除するには、次を実行します。
docker container prune --filter "until=12h"
すべてのコンテナを停止して削除する
docker container ls -aq
コマンドを使用して、システム上のすべてのDockerコンテナーのリストを取得できます。
実行中のすべてのコンテナを停止するには、
docker container stop
コマンドの後にすべてのコンテナIDのリストを使用します。
docker container stop $(docker container ls -aq)
すべてのコンテナが停止したら、
docker container rm
コマンドに続けてコンテナIDリストを使用して
docker container rm
を削除できます。
docker container rm $(docker container ls -aq)
Dockerイメージの削除
1つ以上の画像を削除する
1つ以上のDockerイメージを削除するには、
docker images ls
コマンドを使用して、削除するイメージのIDを見つけます。
docker image ls
出力は次のようになります。
REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 75835a67d134 7 days ago 200MB ubuntu latest 2a4cca5ac898 2 months ago 111MB linuxize/fedora latest a45d6dca3361 3 months ago 311MB java 8-jre e44d62cf8862 3 months ago 311MB
削除したい画像を
docker image rm
たら、それらの
IMAGE ID
を
docker image rm
コマンドに渡します。 たとえば、上記の出力にリストされている最初の2つのイメージを削除するには、次を実行します。
docker image rm 75835a67d134 2a4cca5ac898
Error response from daemon: conflict: unable to remove repository reference "centos" (must force) - container cd20b396a061 is using its referenced image 75835a67d134
ぶら下がり画像を削除する
Dockerは、ぶら下がった未使用のイメージを削除するために使用できる
docker image prune
コマンドを提供します。
ぶら下がり画像は、タグ付けされておらず、どのコンテナでも使用されていない画像です。 ぶら下がり画像を削除するには、次のように入力します。
docker image prune
続行するように求められます。
-f
または
--force
フラグを使用して、プロンプトをバイパスします。
WARNING! This will remove all dangling images. Are you sure you want to continue? y
ぶら下がり画像を削除するときに、自分で作成した画像にタグが付けられていない場合は、それらも削除されます。
未使用の画像をすべて削除する
ぶら下がっているものだけでなく、既存のコンテナーによって参照されていないすべてのイメージを削除するには、
-a
フラグを
-a
して
prune
コマンドを使用します。
docker image prune -a
WARNING! This will remove all images without at least one container associated to them. Are you sure you want to continue? y
フィルターを使用して画像を削除する
docker image prune
コマンドでは、フィルタリングフラグ
--filter
を使用して、特定の条件に基づいて画像を削除することもできます。
この記事の執筆時点で、現在サポートされているフィルターは
until
および
label
です。 複数の
--filter
フラグを使用して、複数のフィルターを使用できます。
たとえば、12時間以上前に作成されたすべての画像を削除するには、次を実行します。
docker image prune -a --filter "until=12h"
Dockerボリュームの削除
1つ以上のボリュームを削除する
1つ以上のDockerボリュームを削除するには、
docker volume ls
コマンドを使用して、削除するボリュームのIDを見つけます。
docker volume ls
出力は次のようになります。
DRIVER VOLUME NAME local 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163 local terano
削除するボリュームの
VOLUME NAME
が見つかったら、それらを
docker volume rm
コマンドに渡します。 たとえば、上記の出力にリストされている最初のボリュームを削除するには、次を実行します。
docker volume rm 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163
Error response from daemon: remove 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163: volume is in use -
未使用のボリュームをすべて削除する
未使用のボリュームをすべて削除するには、
docker image prune
コマンドを使用します。
docker volume prune
続行するように求められます。
-f
または
--force
フラグを使用して、プロンプトをバイパスします。
WARNING! This will remove all local volumes not used by at least one container. Are you sure you want to continue?
Dockerネットワークの削除
1つ以上のネットワークを削除します
1つ以上のDockerネットワークを削除するには、
docker network ls
コマンドを使用して、削除するネットワークのIDを見つけます。
docker network ls
出力は次のようになります。
NETWORK ID NAME DRIVER SCOPE 107b8ac977e3 bridge bridge local ab998267377d host host local c520032c3d31 my-bridge-network bridge local 9bc81b63f740 none null local
削除するネットワークを特定したら、その
NETWORK ID
を
docker network rm
コマンドに渡します。 たとえば
my-bridge-network
という名前のネットワークを削除するには
my-bridge-network
実行します。
docker network rm c520032c3d31
Error response from daemon: network my-bridge-network id 6f5293268bb91ad2498b38b0bca970083af87237784017be24ea208d2233c5aa has active endpoints
未使用のネットワークをすべて削除します
docker network prune
コマンドを使用して、未使用のネットワークをすべて削除します。
docker network prune
続行するように求められます。
-f
または
--force
フラグを使用して、プロンプトをバイパスします。
WARNING! This will remove all networks not used by at least one container. Are you sure you want to continue?
フィルターを使用してネットワークを削除する
docker network prune
コマンドを使用すると、フィルタリングフラグ
--filter
を使用して、条件に基づいてネットワークを削除できます。
この記事の執筆時点で、現在サポートされているフィルターは
until
および
label
です。 複数の
--filter
フラグを使用して、複数のフィルターを使用できます。
たとえば、12時間以上前に作成されたすべてのネットワークを削除するには、次を実行します。
docker network prune -a --filter "until=12h"
結論
このガイドでは、Dockerコンテナ、イメージ、ボリューム、およびネットワークを削除するための一般的なコマンドの一部を示しました。
Dockerの公式ドキュメントも確認してください。
ドッカー