Dockerで不要データを削除しディスクスペースの解放を実現する方法

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
Dockerを使うと、イメージ、コンテナ、ボリューム、ネットワーク、そしてビルド時のキャッシュなど、様々なデータが生成されます。
これらはプロジェクトの進行と共に積み重なり、大量のディスクスペースを消費することがあります。
不要になったこれらのデータを定期的に削除することで、システムをクリーンに保ち、ディスクスペースを解放することができます。
ここでは、いくつかのやり方を紹介していきます。
使われていないDockerイメージの削除
特定のイメージを削除
直接イメージIDを指定し、指定したイメージを削除します。
zsh$ docker rmi <image_id>
- 削除されるもの: 指定したイメージIDに関連するイメージ。
- 保持されるもの: 他の全てのイメージ、コンテナ、ボリューム、ネットワーク。
すべての未使用イメージを削除
すべての未使用イメージを削除します
zsh$ docker image prune -a
- 削除されるもの: すべての未使用のイメージ。
- 保持されるもの: 現在使用中のイメージ、全てのコンテナ、ボリューム、ネットワーク。
未使用のコンテナの削除
特定のコンテナを削除
直接コンテナIDを指定し、指定したコンテナを削除します。
zsh$ docker rm <container_id>
- 削除されるもの: 指定したコンテナIDに関連するコンテナ。
- 保持されるもの: 他の全てのコンテナ、イメージ、ボリューム、ネットワーク。
すべての停止中のコンテナを削除
すべての停止中のコンテナを削除します
zsh$ docker container prune
- 削除されるもの: すべての停止中のコンテナ。
- 保持されるもの: 現在実行中のコンテナ、全てのイメージ、ボリューム、ネットワーク。
未使用のボリュームの削除
すべての未使用のボリュームを削除します
zsh$ docker volume prune
- 削除されるもの: どのコンテナからも参照されていないボリューム。
- 保持されるもの: 現在コンテナによって使用されているボリューム、全てのイメージ、コンテナ、ネットワーク。
未使用のネットワークの削除
すべての未使用のネットワークを削除します
zsh$ docker network prune
- 削除されるもの: どのコンテナからも使用されていないネットワーク。
- 保持されるもの: 現在コンテナによって使用されているネットワーク、全てのイメージ、コンテナ、ボリューム。
ビルドキャッシュの削除
ビルドキャッシュをすべて削除します
zsh$ docker builder prune
- 削除されるもの: 未使用のビルドキャッシュ。
- 保持されるもの: 最近使用されたビルドキャッシュを含む、全てのイメージ、コンテナ、ボリューム、ネットワーク。
Dockerシステムの全体的なクリーンアップ
削除対象を確認
zsh$ docker system df
すべての未使用のイメージ、コンテナ、ボリューム、ネットワークを削除します。
zsh$ docker system prune
-a
オプションを使用すると、未使用のものだけでなく、全ての未接続イメージも削除されます。
zsh$ docker system prune -a
これらのコマンドを定期的に使用することで、Docker環境をきれいに保ち、ディスクスペースを有効に活用することができます。
- review
科学革命から AI 時代へ!『サピエンス全史 下巻』ユヴァル・ノア・ハラリが予見する人類の未来
- review
人類はなぜ地球を支配できた?『サピエンス全史 上巻』ユヴァル・ノア・ハラリが解き明かす驚愕の真実
- review
え?世界はこんなに良くなってた!『FACTFULNESS』ハンス・ロスリングが暴く 10 の思い込みの正体
- review
瞬時に答えが出る脳に変身!『ゼロ秒思考』赤羽雄二が贈る思考力爆上げトレーニング
- review
関西弁のゾウに人生変えられた!『夢をかなえるゾウ 1』水野敬也が教えてくれた成功の本質
- review
「なぜ私の考えは浅いのか?」の答えがここに『「具体 ⇄ 抽象」トレーニング』細谷功