はじめに
現在プログラミングスクール「RUTENQ」で学習中の初学者です🔰
この記事では、Docker環境のローカルPCをクリーンアップする手順を共有します。
記載内容に誤りがあったり、より最適な方法やコマンドがあるかもしれません🙏
その際は教えていただけると幸いです。
なぜクリーンアップが必要なのか?
Dockerを使用して開発を続けていると、使用していないDockerリソース(イメージ、コンテナ、ボリューム、ネットワーク)がローカルPCにのこったままになります。
これらのリソースは、ローカルのリポジトリからソースコードを削除しても残ったままです。
そのため定期的にクリーンアップを実行して、不必要なオブジェクトを削除し、ストレージを解放することが必要です。
Chatgpt-4o解説 クリーンアップとは?
Dockerを使って開発を続けていると、不要なコンテナ、イメージ、ボリューム、ネットワークなどのリソースがローカルPCに溜まっていきます。これらを削除して、ディスク容量を確保し、環境を整理する作業を「クリーンアップ」と呼びます。
クリーンアップを定期的に行うことで、以下のようなメリットがあります:
・ディスク容量の節約: 不要なデータを削除し、ストレージを有効活用。
・開発環境の安定化: 古いデータや設定が原因で発生するトラブルを防止。
・パフォーマンス向上: 不要なリソースが減ることで、操作や処理のスピードが向上。
クリーンアップは、快適な開発環境を維持するための大切なメンテナンス作業です。
・クリーンアップを対象を要確認して、誤って必要なリソースを削除しないように注意しましょう。
・特にボリュームはデータベースなどの重要なデータを保持している場合があるため、慎重に確認してください。
実行した手順
最初に、以下のドキュメントを参考にしてクリーンアップを実行しました
・使用していない Docker オブジェクトの削除(prune)
・未使用のDockerオブジェクトを削除する
この手順で、ある程度の不要リソースをクリーンアップすることができました。
しかし、参照が残っているボリュームや特定のイメージなど、prune
コマンドでは削除対象外となるリソースがあり、完全なクリーンアップには至りませんでした。
そのため、以下の手順で追加のクリーンアップを実施しました。
上記のドキュメントで紹介されている prune コマンドは、未使用リソースのみを安全に削除するよう設計されています。
安全にクリーンアップを行いたい場合は、上記ドキュメントの手順で十分だと思います。
これから紹介する手順では、削除対象を慎重に確認してから実行してください。
コンテナのクリーンアップ
1. コンテナを確認
$ docker ps
※ -aオプションをつけることで、停止中のコンテナも全て表示します
$ docker ps -a
2. 使用していないコンテナを停止
$ docker stop <コンテナID>
3. 停止しているコンテナを一括削除
$ docker container prune
💡参考URL
docker container prune
4. 再度コンテナを確認
$ docker ps
イメージのクリーンアップ
1. イメージの確認
※-aオプションをつけることで、中間イメージも全て表示します
$ docker images -a
2. イメージを一括削除
$ docker rmi $(docker images -a -q)
💡参考URL docker rmi
3. 再度イメージの確認
$ docker images -a
ボリュームとネットワークのクリーンアップ
1. ボリュームの確認
$ docker volume ls
2. ネットワークの確認
$ docker network ls
3. 不要なボリュームとネットワークを削除
※デフォルトではボリュームが削除されないため、--volumesを付けることで未使用のボリューム削除を削除します。
docker system prune --volumes
💡参考URL docker system prune --volumes
4. 再度ボリュームとネットワークの確認
$ docker volume ls
$ docker network ls
pruneコマンドで未使用と判断されたボリュームのみを削除したため、一部のボリュームが削除対象外でした。
このような場合、以下のコマンドを使用してボリュームを手動で削除することが可能です。状況に応じてお好みの方法を選んで実行してください。
1. ボリュームをひとつずつ削除
$ docker volume rm <ボリューム名>
2.複数のボリュームを一括削除
$ docker volume rm <ボリューム名1> <ボリューム名2> <ボリューム名3>
3. 必要なボリュームを残して一括削除
※ボリューム1 という名前が含まれるボリュームを除き、すべてのボリュームを削除します。
$ docker volume ls -q | grep -v 'ボリューム1' |xargs docker volume rm
さいごに
Docker環境のクリーンアップ方法について、この記事でご紹介させていただきました。
参考URLも併せてご確認いただければ、より理解が深まると思います。
この記事が少しでも皆さまのお役に立てれば嬉しいです!🌱
最後までお読みいただき、ありがとうございました!