Dockerのイメージ、コンテナ、ボリュームを削除する方法


Docker は、アプリケーションとインフラストラクチャの間の現実的な独立性を可能にする、オープンソースの強力で安全、信頼性の高い効率的なコンテナプラットフォームです。アプリケーションを簡単に作成、展開、および実行するために、ITおよびクラウド企業によって広く採用されています。

コンテナは、オペレーティングシステムを視覚化するためのテクノロジです。コンテナを実行するために必要なすべてのものをアプリケーションにパッケージ化し、オペレーティングシステムから独立して実行できるようにすることができます。コンテナイメージはアプリケーションの自己完結型の実行可能パッケージで、コードの実行に必要なもの、コード、ランタイム、システムツール、ライブラリ、そして設定がすべて含まれています。

Docker では、Dockerのインストール方法、コンテナへのアプリケーションの実行方法、およびdockerfileを使用してdockerイメージを自動的に構築する方法について説明しました。

  1. Install Docker and Learn Basic Container Manipulation in CentOS and RHEL 7/6
  2. How to Deploy and Run Applications into Docker Containers on CentOS/RHEL 7/6
  3. Automatically Build and Configure Docker Images with Dockerfile on CentOS/RHEL 7/6
  4. How to Setup a Simple Apache Web Server in a Docker Container

この記事では、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ボリュームを、次に示すようにvolume managementコマンドで一覧表示することから始めます。

$ 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 usermod -a -G docker aaronkilik

詳細については、上記のdockerオブジェクト管理コマンドのヘルプページを参照してください。

$ docker help
$ docker image help   
$ docker container help   
$ docker volume help   

それは今のところすべてです!この記事では、dockerコマンドラインツールを使ってdockerイメージ、コンテナ、ボリュームを削除する方法を説明しました。質問や意見がありましたら、下記のフィードバックフォームを使用してご連絡ください。