Docker イメージ、コンテナー、ボリュームを削除する方法
Docker は、アプリケーションとインフラストラクチャ間の現実的な独立性を可能にする、オープンソースの強力で安全、信頼性が高く、効率的なコンテナ プラットフォームです。アプリケーションを簡単に作成、展開、実行するために、IT 企業やクラウド企業で広く採用されています。
コンテナは、オペレーティング システムを視覚化するためのテクノロジであり、アプリケーションを実行するために必要なものすべてをパッケージ化して、アプリケーションをオペレーティング システムから独立して実行できるようにします。コンテナー イメージは、アプリケーションの自己完結型の実行可能パッケージであり、コード、ランタイム、システム ツールとライブラリ、構成など、アプリケーションの実行に必要なものがすべて含まれています。
私たちはすでに Docker に関するシリーズで取り上げ、Docker をインストールする方法、コンテナ内でアプリケーションを実行する方法、dockerfile を使用して Docker イメージを自動的に構築する方法を説明しています。
- Docker をインストールし、CentOS および RHEL 7/6 での基本的なコンテナ操作を学習する
- CentOS/RHEL 7/6 上の Docker コンテナにアプリケーションをデプロイして実行する方法
- CentOS/RHEL 7/6 で Dockerfile を使用して Docker イメージを自動的に構築および構成する
- Docker コンテナで単純な Apache Web サーバーをセットアップする方法
この記事では、Linux システムで docker コマンド ライン ツールを使用して docker イメージ、コンテナー、およびボリュームを削除する方法を説明します。
Docker イメージを削除する方法
Docker イメージを削除する前に、イメージ管理コマンドを使用して、システム上のすべての既存のイメージを一覧表示できます。
$ docker image #list the most recently created images
OR
docker image -a #list all images
次のスクリーンショットの出力を見ると、タグのない画像がいくつかあります (代わりに が表示されています)。これらは「ダングリング画像 」と呼ばれます。これらはタグ付けされた画像とは何の関係もなくなりました。これらはもう役に立たず、ディスク容量を消費するだけです。
たとえば、イメージ ID を使用して、1 つ以上の古いまたは未使用の Docker イメージを削除できます (d65c4d6a3580 はイメージ ID)。
$ docker rmi d65c4d6a3580 #remove a single image
docker rmi 612866ff4869 e19e33310e49 abe0cd4b2ebc #remove multiple images
図に示すように、-f
フィルター フラグを使用して、未解決のイメージ (タグのないイメージ) を一覧表示できます。
$ docker images -f dangling=true
未解決のイメージをすべて削除して、無駄なディスク領域を再利用できるようにするには、次のコマンドのいずれかを使用します。
$ docker image prune #interactively remove dangling images
OR
docker rmi $(docker images -q -f dangling=true)
どのコンテナにも関連付けられていないものをすべて削除するには、次のコマンドを使用します。
$ docker image prune -a
Dockerコンテナを削除する方法
次のコマンドを使用して、システム上のすべての Docker コンテナーを一覧表示することから始めます。
$ docker ps
OR
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
--force
または -f
フラグを追加することで、実行中にコンテナを強制削除することもできます。これにより、コンテナに < が送信されます。示されているように、strong>SIGKILL シグナル。
$ docker rm -f 0fd99ee0cb61
フィルターを使用してコンテナーを削除することもできます。たとえば、終了したコンテナをすべて削除するには、次のコマンドを使用します。
$ docker rm $(docker ps -qa --filter "status=exited")
すべてのコンテナを停止して削除するには、次のコマンドを使用します。
$ docker stop $(docker ps -a -q) #stop all containers
docker container prune #interactively remove all stopped containers
OR
docker rm $(docker ps -qa)
Docker ボリュームを削除する方法
前と同様に、図に示すようにボリューム管理コマンドを使用して、システム上のすべての Docker ボリュームを一覧表示することから始めます。
$ docker volume ls
1 つ以上のボリュームを削除するには、次のコマンドを使用します (コンテナーによって使用されているボリュームは削除できないことに注意してください)。
$ docker volume rm volume_ID #remove a single volume
docker volume rm volume_ID1 volume_ID2 #remove multiple volumes
1 つ以上のボリュームを強制的に削除するには、-f
フラグを使用します。
$ docker volume rm -f volume_ID
未解決のボリュームを削除するには、次のコマンドを使用します。
$ docker volume rm $(docker volume ls -q --filter dangling=true)
未使用のローカル ボリュームをすべて削除するには、次のコマンドを実行します。これにより、ボリュームが対話的に削除されます。
$ docker volume prune
未使用または未解決のイメージ、コンテナ、ボリューム、ネットワークを削除する方法
この 1 つのコマンドで、停止したコンテナーやコンテナーのないイメージなどの未解決データや参照されていないデータをすべて削除できます。デフォルトでは、ボリュームを使用しているコンテナが現在存在しない場合に重要なデータが削除されるのを防ぐため、ボリュームは削除されません。
$ docker system prune
ボリュームをプルーニングするには、次のように --volumes
フラグを以下のコマンドに追加するだけです。
$ docker system prune --volumes
注: sudo コマンドを使用せずに docker コマンド ライン ツールを実行するには、たとえば docker グループにユーザーを追加する必要があります。
$ sudo usermod -a -G docker aaronkilik
詳細については、上記の Docker オブジェクト管理コマンドのヘルプ ページを参照してください。
$ docker help
docker image help
docker container help
docker volume help
今のところはここまでです!この記事では、docker コマンド ライン ツールを使用して docker イメージ、コンテナー、およびボリュームを削除する方法を説明しました。ご質問やご意見がございましたら、以下のフィードバック フォームをご利用ください。