すべてのDockerローカルDockerイメージを削除する方法


266

私は最近Dockerを使い始めましたが、実験のdocker-compose down代わりに、ctrl-cまたはdocker-compose stop自分の実験を取り除くために使うべきだとは思いもしませんでした。ローカルに不要なDockerイメージが多数あります。

すべてのローカルDockerイメージとコンテナーを削除するために実行できるフラグはありますか?

docker rmi --all --force--allフラグのようなものは存在しませんが、同様のアイデアを持つ何かを探しています。



2
docker images purge->すべての
docker

xargsの場合:docker image ls -q | xargs -I {} docker image rm -f {}
arkadyt

@muthukumarhelius意味していると思いますdocker image prune(画像は単数形で、パージではなくプルーンです)。
アンドレス・メヒア

回答:


534

ボリュームの使用を含むすべてのコンテナを削除するには、

docker rm -vf $(docker ps -a -q)

すべての画像を削除するには、

docker rmi -f $(docker images -a -q)

コンテナが作成されたすべてのイメージを削除する前に、すべてのコンテナを削除する必要があることを忘れないでください。

Windows(Powershell)で作業している場合は、

$images = docker images -a -q
foreach ($image in $images) { docker image rm $image -f }

7
unknown shorthand flag: 'a' in -a実行中docker rmi -f $(docker images -a -q)
Ashutosh Chamoli

25
@Ashutosh Chamoli:CMDでは機能せず、PowerShellで機能します。
ジャック

4
powershellの1行バリアント:docker images -a -q | % { docker image rm $_ -f }
CodeStix

4
私は何百回もここに来たに違いありません。この答えを書いてくれてありがとう!
Ajay Maity

「docker rmi -f $(docker images -a -q)」は本当の悪い
Sinux

176

これを使用してすべて削除します

docker system prune -a --volumes

未使用のコンテナ、ボリューム、ネットワーク、イメージをすべて削除します

WARNING! This will remove:
    - all stopped containers
    - all networks not used by at least one container
    - all volumes not used by at least one container
    - all images without at least one container associated to them
    - all build cache

https://docs.docker.com/engine/reference/commandline/system_prune/#extended-description


1
ただし、実際にはすべてのディスク領域を再利用するわけではありません。
lucian303

@ lucian303このアプローチは、ディスク領域を再利用します。多分あなたは特定の問題に直面しています。
Robert

これ @techtabuの回答の手順を実行したときにのみ、望ましい結果が得られるようです
sir_dancealot

31

すべてを単純にクリアするには、次のようにします。

$ docker system prune --all

すべての意味:

  • すべての停止したコンテナ
  • 少なくとも1つのコンテナで使用されていないすべてのネットワーク
  • 少なくとも1つのコンテナが関連付けられていないすべての画像
  • すべてのビルドキャッシュ

26

docker image prune -a

ぶら下がっている画像だけでなく、すべての未使用の画像を削除します。-f強制するオプションを追加します。

ローカルDockerバージョン:17.09.0-ce、Gitコミット:afdb6d4、OS / Arch:darwin / amd64

$ docker image prune -h
Flag shorthand -h has been deprecated, please use --help

Usage:  docker image prune [OPTIONS]

Remove unused images

Options:
  -a, --all             Remove all unused images, not just dangling ones
      --filter filter   Provide filter values (e.g. 'until=<timestamp>')
  -f, --force           Do not prompt for confirmation
      --help            Print usage

7

簡単で便利なコマンド

すべての画像を削除するには

docker rmi $(docker images -a)

終了状態のコンテナを削除するには

docker rm $(docker ps -a -f status=exited -q)

作成済みのコンテナを削除するには

docker rm $(docker ps -a -f status=created -q)

注:すべてのコンテナーを削除してから、イメージを削除します


すべての画像を削除するには、「docker rmi $(docker images -a -q)」である必要があります。-qは画像IDのみを返します
Jimmy MG Lim

つまり、それらの画像が削除されています。もう一度再確認
Deep Nirmal

3

すべての画像を削除するには:

docker rmi -f $(docker images -a | awk {'print $3'})

説明:

ドッカー画像-a | awk {'print $ 3'}

このコマンドは、すべてのイメージIDを返し、そのIDを使用してイメージを削除するために使用されます。


3

dockerを呼び出さずに削除:

rm -rf /var/lib/docker

これはdockerを正常に実行できるかどうかはお勧めしませんが、なんらかの理由で実行できない、またはしたくない場合は、これでうまくいきます。


2

あなたはこのように試すことができます:

docker system prune

私の場合、これは私がまだ使用しているボリュームを削除します。機能がわからない場合は使用しないでください
Zach Smith

2

すべての画像を削除するには:

docker rmi $(docker images -a -q)

ここで、-aはすべて、-qはイメージIDのみを返します

未使用のイメージとコンテナを削除するには:

docker system prune

docker swarmを使用していて、ローカルマシンがリモートのswarmに(マネージャー/ワーカーとして)参加している場合は、ローカルがデプロイされたリポジトリになります。したがって、これを実行すると、デプロイされたイメージが削除されます。


2
docker rmi $(docker images -q) --force

2
投稿に回答を残す際は、後で説明を追加して、後で回答を見つけた人が理解できるようにする必要があります。
Morphyish

1

techtabuの承認済みの回答に追加します。Windowsでdockerを使用している場合は、次のコマンドを使用できます

for /F "delims=" %A in ('docker ps -a -q') do docker rm %A

ここでは、コマンドdocker ps -a -qはすべての画像をリストし、このリストはdocker rm1つずつ渡されます

参照このコマンド形式のこのタイプは、cmdをウィンドウにどのように動作するかの詳細については。



0

すべてのDockerローカルDockerイメージを削除するには、2つの手順に従います::

ステップ1:Dockerイメージ(ID付きのすべてのDockerイメージをリストします)

     example :
     REPOSITORY    TAG    IMAGE ID            CREATED             SIZE
     pradip564/my  latest 31e522c6cfe4        3 months ago        915MB

ステップ2:docker image rm 31e522c6cfe4(IMAGE ID)

      OUTPUT : image deleted
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.