アプリとインフラストラクチャ間の独立性を実現するための包括的なオープンソースコンテナプラットフォームが必要な場合、Dockerが最も安全です。 あなたがそれを使用する機会があったなら、あなたはすでにそれがどれだけ能力があり使いやすいかを知っています
多数のクラウドおよびIT企業が非常に便利であり、その人気は間違いなく値します。
それでも、これでは完璧になりません。 この証拠は、イメージ、ボリューム、コンテナ、およびネットワークの削除に伴う制限に見ることができます。 これらのコマンドは使用できますが、ユーザーが望むほど包括的ではありません。
ここでは、ユーザーが遭遇する主な問題とその解決策を示します。 画像とコンテナを簡単に削除する方法を学びます。
問題
コンテナテクノロジーは、オペレーティングシステムを視覚化する方法を提供します。 アプリを実行するために必要なすべてをパッケージ化できるため、OSから独立して動作できます。
コンテナイメージは、アプリが正常に動作するために必要なすべてを含む自己完結型の実行可能アプリパッケージです。 ランタイム、コード、構成、およびシステムツールとライブラリが各イメージに含まれています。
Dockerを使用すると、これらの画像が蓄積されます。 時間が経つにつれて、多数の未使用のイメージ、データボリューム、およびコンテナーが蓄積され、混雑したDocker環境が作成されます。 これが発生した場合、プラットフォームが正常に機能するように環境を更新する必要があります。
これを実現するコマンドは複数あるため、Docker環境を整理する主な方法を見てみましょう。
Dockerイメージの削除
不要な画像を削除する前に、有用な画像と区別する必要があります。 これは、イメージ管理コマンドを使用して、システムに含まれるすべてのイメージをリストすることで簡単に実行できます。
これは次のようなものです。
$ docker image #list the most recently created images
または
$ docker image -a #list all images
2番目のコマンドを使用すると、すべてのドッカー画像が表示されます。 必要なのは、いわゆる「ぶら下がり画像」を見つけることだけです。 これらはすべて、タグを含まないDockerイメージです。 タグがなければ、タグ付けされた画像とのつながりはありません。つまり、それらはもう役に立たないということです。
イメージIDを使用して、1つ以上のイメージを削除できます。 これを行うには、次のコマンドのいずれかを使用します。
$ docker rmi d65c4d6a3580 #remove a single image
$ docker rmi 612866ff4869 e19e33310e49 abe0cd4b2ebc #remove multiple images
より便利な解決策は、-f filterフラグを使用して、すべてのダングリングイメージをリストすることです。
これらのイメージを削除してディスク領域をクリーンアップするには、次のコマンドのいずれかを使用します。
$ docker image prune #interactively remove dangling images
または
$ docker rmi $(docker images -q -f dangling=true)
同様の方法で、すべてのDockerイメージを削除できます。 $ docker images –aコマンドを使用してリストし、次を使用してそれらを削除します。
$ (docker rmi $(docker images -a -q)
別のオプションは、特定のパターンに従う画像を削除することです。 それらをリストするには、次のコマンドを使用します。
$ docker images -a | grep "pattern"
次に、以下を使用してそれらを削除します。
$ docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi
コンテナの削除
Dockerを一定時間使用した後に行うもう1つの方法は、1つ以上のコンテナーを削除することです。
画像の削除と同様に、最初に次のコマンドを使用してリストする必要があります。
$ docker ps
または
$ docker ps -a
削除するコンテナが見つかったら、そのIDを使用して削除します。
$ docker rm 0fd99ee0cb61 #remove a single container
$ docker rm 0fd99ee0cb61 0fd99ee0cb61 #remove multiple containers
削除しようとしているコンテナが実行中の場合、次のコマンドを使用して停止できます。
$ docker stop 0fd99ee0cb61
$ docker rm -f 0fd99ee0cb61
最後に、次のコマンドを使用して、すべての不要なコンテナを停止および削除できます。
$ docker stop $(docker ps -a -q) #stop all containers
$ docker container prune #interactively remove all stopped containers
または
$ docker rm $(docker ps -qa)
これにより、貴重なディスク容量を解放し、新たに開始できます。
最後の言葉
ご覧のとおり、Dockerのイメージとコンテナーを削除することは、それほど困難ではありません。 これらのコマンドがわかったので、Dockerエクスペリエンスをより詳細に制御できます。
もちろん、これらはコマンドの一部に過ぎず、他のさまざまな組み合わせを使用できます。 それでも、これらはうまく機能しますので、試してみてください。