Dockerは、実際の仮想マシンを使用せずにアプリケーションを実行できる貴重なオープンソースプラットフォームであるため、世界を席巻しています。これにより、ユーザーは互換性を気にすることなくソフトウェアコンテナでアプリケーションを実行およびテストできる柔軟性が得られ、仮想プライベートサーバーが優れた開発プラットフォームになります。
このチュートリアルでは、Dockerの未使用のイメージ、コンテナー、ボリューム、ネットワークを削除する方法など、すべてのユーザーが知っておくべき基本的なコマンドについて説明します。
重要! まず、SSHを使用してVPSにアクセスし、Dockerをマシンにインストールする必要があることを忘れないでください。
Docker自体は未使用のデータを削除しないため、ディスク容量が乱雑になる可能性があります。
コンテナに関連付けられていないすべての画像、コンテナ、ネットワークを削除する場合
docker system prune
このコマンドはすべてを削除します 次のメッセージでわかるように、ぶら下がっている画像や停止したコンテナを含みます。
WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all dangling images - all dangling build cache Are you sure you want to continue? [y/N]
。
未使用の画像をすべて含めるには、次のコマンドを実行します。
docker system prune -a
続行する前に表示される警告メッセージは次のとおりです。
WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all images without at least one container associated to them - all build cache Are you sure you want to continue? [y/N]
ただし、前の2つのコマンドは、未使用のボリュームには影響しません。これは、安全上の理由から意図的に行われます。
それも削除したい場合は、次のコマンドを使用してください:
docker system prune --volumes
重要! 両方のrmを使用することに注意してください およびプルーン コマンドは元に戻せません。
Dockerイメージを削除する方法
すべてのDockerイメージを表示するには、次を使用できます。
docker images -a
Dockerイメージまたはいくつかを削除する場合は、このコマンドを使用して IMAGE IDを一覧表示できます。 ここに示すように:
docker image rm IMAGE_ID
最新でタグが付いていないぶら下がっている画像を削除するには、「dockerremoveallimages」を使用します ここに示すコマンド:
docker image prune
ただし、タグが付けられている既存のコンテナに存在するDockerイメージを削除するには、次の方法を使用できます。
docker image prune –a
たとえば、特定の時間枠に該当する可能性のあるすべての画像を削除する場合は、次のコマンドを使用します。
docker image prune -a --filter "until=24h"
–filterについて詳しく知りたい場合 フラグについては、公式ドキュメントページをご覧ください。
Dockerコンテナを削除する方法
以前と同様に、すべてのDockerコンテナのリストを表示するには、次のコマンドを実行する必要があります。
docker container ls -a
特定のコンテナを削除する場合は、コンテナIDを入力します この例に示すように:
docker container rm CONTAINER_ID
停止したすべてのコンテナを削除するには アプリケーションで、次のコマンドに従います:
docker container prune
これにより、停止したすべてのコンテナが削除されることに注意してください。前述のコマンドを使用して削除されるコンテナのリストを表示するには、 –filterを使用します フラグ:
docker container ls -a --filter status=created --filter status=exited
たとえば、時間枠に応じて停止したコンテナの削除を制限するには、次のコマンドを使用できます。
docker container prune --filter "until=24h"
作業が終わったらコンテナを削除する場合は、 –rmを追加してコンテナを開始します。 国旗。このようなコンテナを削除する方法の例を次に示します。
docker run --rm CONTAINER_ID
完了すると、コンテナは自動的に削除されます。
Dockerボリュームを削除する方法
ボリュームは複数のコンテナーに使用されており、未使用または停止中のボリュームファイルが多数存在する可能性が非常に高くなります。
これらのファイルは自動的に削除されません。また、Dockerには、データの重大な損失や損傷を引き起こす可能性があるために削除する設定もありません。
まず、すべてのDockerボリュームIDを取得するには、次のコマンドを使用します。
docker volume ls
特定のボリュームを削除する場合は、このコマンドに続けてボリューム名を使用します :
docker volume rm VOLUME_NAME
1つのコマンドを使用して未使用のボリュームをすべて削除するには、次を使用できます。
docker volume prune
Dockerボリュームにラベルが添付されている場合は、これを使用することもできます:
docker volume prune --filter "label!=keep"
この例では、コマンドは、「keep」でラベル付けおよび割り当てられていないボリュームファイルのみを削除します。 ラベル。
Dockerネットワークを削除する方法
Dockerネットワークはディスク容量をあまり消費しませんが、不要なファイルがディスクからクリアされない場合、問題が発生する可能性があります。
1つの問題は、ルーティングテーブルエントリを使用してiptablesとブリッジネットワークのルールを作成することです。これにより、長期的にはいくつかの問題が発生する可能性があります。
ネットワークIDの完全なリストについては 、次のコマンドを使用します:
docker network ls
特定のネットワークを削除するには、次を使用できます。
docker network rm NETWORK_ID
未使用のネットワークをすべて削除する場合は、次のコマンドを使用します。
docker network prune
時間枠(この例では24時間)に基づくフィルターの場合、代わりに次のように入力できます。
docker network prune --filter "until=24h"
Dockerを使用する理由
Dockerを使用すると、使用しているシステム、画面サイズ、またはWebブラウザーに関係なく、アプリをよりスムーズに実行できます。 Dockerを使用すると、アプリケーションのデプロイ、起動、テストを簡単に行うことができます。要するに、それは速く、時間を節約し、そして学ぶのが簡単です。
Dockerがこのように人気のあるコンテナープラットフォームである理由の例をさらにいくつか示します。
- 費用対効果と費用対効果。 従来のコンテナプラットフォームとは異なり、Dockerのインフラストラクチャは最小限であるため、仮想マシンや関連機器のコストを大幅に節約できます。最も重要なことは、Dockerをより少ない従業員で処理できることです。これは、予算が厳しすぎる場合にもコストを節約するのに役立ちます。
- 全体的な互換性が優れています。 Dockerを使用すると、開発者はコンテナー上でアプリケーションを作成、実行、テストできるため、どのシステムでもスムーズな操作が保証されます。これは、ソフトウェア開発者がバグの少ないアプリケーションを作成できるようにするための十分な実験の余地を提供します。また、コードベースを簡単に設定できるため、移植性が向上します。
- 生産性の向上。 Dockerのより顕著な機能の1つは、単一のコマンドで以降のステップを処理できることです。これにより、ワークフローの効率が向上し、アプリケーションの構成が高速化され、生産性が向上します。
- マルチクラウドプラットフォームの互換性。 Dockerを使用すると、マルチクラウドコンピューティングが可能になります。これは、世界中の多くのシステムがDockerを完全に採用している方法です。アマゾンウェブサービス(AWS)とグーグルコンピューティングプラットフォーム(GCP)は、Dockerが非常に好まれている例のほんの一部です。 OpenStack、Microsoft Azure、Chef、Puppetなどを含む多くのアプリケーションは、Dockerコンテナーとの互換性が高くなっています。
- セキュリティの強化。 Dockerは安全で高速です。つまり、Dockerコンテナーで実行されている各アプリケーションは互いに分離されたままであるため、セキュリティの問題が少なくなります。これにより、開発者はサーバーやセキュリティの問題を引き起こすことなく、アプリケーションとトラフィックフローの完全な管理を担当できます。
今日、Dockerはかなりの勢いを増しており、世界中の多くの有名企業で使用されています。これは、より便利な開発ソリューションを可能にし、無制限のテストと実験を可能にして、アプリケーションを迅速かつ効率的に作成できる、これまでで最高のプラットフォームの1つです。
このチュートリアルでは、未使用のDockerイメージ、コンテナー、ボリューム、およびネットワークをクリアする方法を学習しました。ご不明な点がございましたら、下にコメントを残してください。