GNU/Linux >> Linux の 問題 >  >> Ubuntu

Dockerイメージ、コンテナー、ネットワーク、ボリュームを削除する方法

はじめに

Dockerコンテナーは、ソフトウェアの実行に必要なすべてのライブラリーと構成を備えた、自給自足の環境を提供するように設計されています。開発中は、古い、古い、未使用のコンポーネントで整理されていない状態になる可能性があります。

このガイドでは、Dockerイメージ、コンテナー、ボリューム、およびネットワークを削除してDocker環境を整理する方法を学習します。

これらのコマンドを使用すると、Dockerコンテナの管理が迅速かつ簡単になります。

前提条件

  • Dockerを実行しているLinuxシステム
  • ターミナル/コマンドラインへのアクセス( Ctrl + Alt + T Ubuntuでは、 Alt + F2 CentOSで)
  • sudoのユーザーアカウント 特権

Dockerコンテナを削除する方法

コンテナは、プロセスを実行できる特定の環境を作成します。多くのコンテナは、開発ライフサイクル中に作成、テスト、および破棄されます。

したがって、不要なコンテナを見つけて削除する方法を知ることが重要です。

コンテナの停止

1.まず、次のコマンドを使用してすべてのDockerコンテナを一覧表示します:

docker container ls -a

出力には、実行中のすべてのコンテナ、それらのID、名前、イメージ、ステータス、およびその他のパラメータのリストが表示されます。

数値IDのみですべてのコンテナのリストを生成することもできます。コマンドを実行します:

docker container ls -aq 

2.特定のコンテナを停止する 、次のように入力します:

docker container stop [container_id]

[container_id]を置き換えます リストにあるコンテナの数値IDを使用します。

同じコマンドに複数のコンテナIDを入力できます。

すべてのコンテナを停止する 、次のように入力します:

docker container stop $(docker container ls -aq)

これにより、DockerはすべてのコンテナIDのリストを stopのターゲットとして使用するように強制されます。 コマンド。

停止したコンテナを削除する

停止したコンテナを削除する 、次のコマンドを使用します:

docker container rm [container_id]

以前と同様に、これにより、指定したIDのコンテナーが削除されます。

停止したコンテナをすべて削除する

停止したすべてのコンテナを削除する

docker container rm $(docker container ls -aq)

すべてのDockerコンテナを削除する

Dockerをクリーンにワイプして最初から開始するには、次のコマンドを入力します:

docker container stop $(docker container ls -aq) && docker system prune -af --volumes

これにより、Dockerは括弧内にリストされているコンテナーを停止するように指示されます。

括弧内では、数値IDを持つすべてのコンテナーのリストを生成するようにDockerに指示します。次に、情報はcontainer stopに戻されます。 コマンドを実行し、すべてのコンテナを停止します。

&& 属性は、停止したすべてのコンテナーとボリュームを削除するようにDockerに指示します。

-af これはすべてのコンテナに適用する必要があることを示します( a )必要な確認なし( f

フィルター付きのコンテナーの削除

指定したラベルと一致しないすべてのオブジェクトを削除するように指定することもできます。

これを行うには、次のコマンドを使用します:

docker container prune --filter="label!=maintainer=Jeremy"

このコマンドは、Dockerにすべてのコンテナを削除するように指示します 「ジェレミー」のメンテナのラベルが付いていないもの 。"!= コマンドは、「等しくない」を意味する論理表記です。 。"

labelの内訳 コマンド:

  • label=<key>
  • label=<key>=<value>
  • label!=<key>
  • label!=<key>=<value>

これらの用語をラベルと組み合わせて使用​​すると、Dockerでアセットを削除する際の詳細な制御が可能になります。

Dockerイメージを削除する方法

Dockerイメージはファイルであり、コンテナー内でコードを実行するために使用される複数のレイヤーが含まれています。

画像は、開発中に何度も繰り返される可能性があります。古い画像や古い画像はシステムを乱雑にし、ストレージスペースを占有し、検索をより面倒にする可能性があります。

1.Dockerイメージを削除する 、システム上のすべての画像を一覧表示することから始めます:

docker image ls

以下に示すように、出力にはローカルで利用可能なDockerイメージが表示されます。

2. IMAGE IDをメモします –これは画像の削除に使用される識別子です。

3.次に、不要な画像を削除します:

docker image rm [image_id1] [image_id2]

[image_id1]を置き換えます および[image_id2] 最初のコマンドから取得したイメージIDを使用します。単一の画像ID、または削除する複数のIDを入力できます。

システムは、競合があり、リポジトリ参照を削除できないというエラーメッセージで要求に応答する場合があります。これは、コンテナがイメージを使用していることを示しています。画像を削除する前に、まずコンテナを削除する必要があります。

フィルターを使用したDockerイメージの削除

公開時点でサポートされているフィルタは、untilのみです。 およびlabel 。それでも、これらはDockerリソースを管理するための強力なツールです。

untilを使用します 特定の時間までのすべてのリソースを削除するためのフィルター。

次のように入力します:

docker image prune -a --filter "until=24h"

これにより、すべてが削除されます( -a )過去24時間に作成された画像。このコマンドは、コンテナー、イメージ、およびフィルターに使用できます。削除するアセットを必ず指定してください。

until コマンドは、Unixタイムスタンプ、日付形式のタイムスタンプ、またはマシン時間に対して計算された時間(30m、4h、2h25m)を受け入れます。

labelを使用する ラベルで定義されたアセットを削除するコマンド。

次のように入力します:

docker image prune --filter="label=old"

これにより、すべてのDockerイメージが削除されます 「古い」とラベル付けされているもの。

フィルタリングを使用して、ラベルの特定の値を定義することもできます。

たとえば、コンテナに「maintainer」キーのラベルが付いていて、「maintainer」の値が「bill」または「jeremy」の場合、次のように入力できます。

docker container prune --filter="label=maintainer=bill"

次に、Dockerは、ラベルが「maintainer」で値が「bill」のすべてのコンテナーを削除します。

Dockerボリュームを削除する方法

ボリュームはDockerデータを保存するために使用されます。

複数のコンテナからアクセスできるように、コンテナの外部にデータを保存して整理するのに役立ちます。

1.次のコマンドを使用して、使用可能なすべてのDockerボリュームのリストを生成します。

docker volume ls

ボリューム名に注意してください 削除したい。

2.次に次のように入力します:

docker volume rm VolumeName

必ずVolumeNameを置き換えてください 前のコマンドで生成した実際の名前を使用します。

ボリュームが既存のコンテナーによって使用されている場合、システムはエラーで応答します。これは、最初にコンテナを削除する必要があることを意味します。

Dockerネットワークを削除する方法

Dockerネットワークを使用すると、さまざまなコンテナーが相互に自由に通信できると同時に、ネットワーク外からのトラフィックを防ぐことができます。これは通常、Dockerブリッジネットワークを使用して行われます。

prune コマンドは、未使用のネットワークをすべて削除します。

単一のネットワークの削除

1.既存のすべてのDockerネットワークのリストを表示します コマンドを使用して:

docker network ls

2. NETWORK IDをメモします –これは特定のネットワークを削除するために使用される識別子です。次に、次のように入力します。

docker network rm [networkID]

[networkID]を置き換えます 最初のコマンドで取得したIDを使用します。

ネットワークにアクティブなエンドポイントがあることを示すエラーメッセージが表示される場合があります。これは、ネットワークが現在コンテナによって使用されていることを意味します。ネットワークを削除する前に、ネットワークを使用しているコンテナを削除する必要があります。

未使用のDockerオブジェクトをすべて削除

prune コマンドは、コンテナに関連付けられていないすべてのリソースを自動的に削除します。これは、未使用のイメージ、コンテナ、ボリューム、およびネットワークをクリーンアップするための合理化された方法です。

ターミナルウィンドウで、次のように入力します。

docker system prune

追加のフラグを含めることができます:

  • -a 停止したコンテナと未使用の画像を含めるには
  • -f 確認ダイアログをバイパスします
  • --volumes 未使用のボリュームをすべて削除します

また、環境全体ではなく、削除する単一のタイプのオブジェクトを指定できます。

docker container prune
docker image prune
docker volume prune
docker network prune

docker system prune -aを実行しています 未使用の画像とぶら下がっている画像の両方を削除します。現在実行中または終了中のコンテナで使用されているイメージは影響を受けません。

すべてのDockerリソースを一覧表示する

次のコマンドを入力して、リソースを表示します。

docker container ls
docker image ls
docker volume ls
docker network ls
docker info

上記は、コンテナの数、イメージ、およびDockerのインストールに関する情報を示しています。これらのコマンドは、保持したい、または削除したいリソースを見つけて識別するのに役立ちます。

次のフラグも追加できます:

  • -a すべてのリソース(停止しているリソースを含む)を表示します
  • -q または--quiet (数値IDのみを表示)

Ubuntu
  1. すべてのDockerイメージ、コンテナー、ボリューム、ネットワーク、および未使用のリソースを削除する方法

  2. LinuxでDockerコンテナを作成、一覧表示、削除する方法

  3. Dockerコンテナ間でデータを共有する方法

  1. Dockerコンテナを終了する方法

  2. Docker コンテナーをバックアップおよび復元する方法

  3. Docker コンテナを一時停止および再開する方法

  1. Dockerコンテナを一覧表示/開始/停止する方法

  2. Dockerコンテナを一覧表示する方法

  3. すべての Docker コンテナーを削除する方法