web-dev-qa-db-ja.com

Dockerで画像を削除する方法

OS X 10.8.4(Mountain Lion)のVagrantでDockerを実行していますが、保存した画像を削除しようとするとエラーが発生します。

$ docker rmi some-image-id
2013/07/15 hh:mm:ss unexpected JSON input

rmiヘルプによると、正しい構文はdocker rmi IMAGE [IMAGE...]であり、それをどうすればよいのかわかりません。

画像を削除する方法

$ docker version
Client version: 0.4.8
Server version: 0.4.8
Go version: go1.1

$docker info
Containers: 1
Images: 3

面白いことに、私がdocker psを実行すると、コンテナがまったく表示されません。 docker imagesを実行すると、4つのbaseイメージと1つのnodeイメージが表示されます。

771
Jules

docker rmi nodeを試してください。それはうまくいくはずです。

作成されたコンテナをすべて見るのはdocker ps -aと同じくらい簡単です。

(画像ではなく)既存のコンテナをすべて削除するには、docker rm $(docker ps -aq)を実行します。

942
Nick Stinemates

以下は、dockerイメージ/コンテナを削除する方法のいくつかです。

単一画像を削除

docker rmi image_name:version/image-id

すべての画像を削除

docker rmi $(docker images -qf "dangling=true")

容器を殺して、それらを削除します。

docker rm $(docker kill $(docker ps -aq))

注:正常なシャットダウンのためにkillstopに置き換えます

"my-image"以外のすべての画像を削除

Grepを使用してmy-imageubuntuを除くすべてを削除します

docker rmi $(docker images | grep -v 'ubuntu\|my-image' | awk {'print $3'})

または (awkなし)

docker rmi $(docker images --quiet | grep -v $(docker images --quiet ubuntu:my-image))

535
Ulises

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

docker rm $(docker ps -a -q)

すべてのdocker画像を削除する

docker rmi $(docker images -q)
189
Chrysalis

イメージIDを使用してDockerからイメージを削除するには:

  1. 全画像の一覧を取得する

    docker images
    
  2. 削除する画像の画像IDを指定します。次に例を示します。

    REPOSITORY     TAG     IMAGE ID        CREATED        VIRTUAL SIZE
    kweku360/Java  latest  08d3a9b8e166    2 weeks ago         5.733 GB`
    
  3. 最後に画像IDを使用して画像を削除します(最初の3桁のみが必要です)

    docker rmi 08d
    
63
kweku360

画像:

  1. リスト画像

    ドッカー画像

  2. 1枚の画像を削除する

    docker rmi image_name

  3. 1枚の画像を強制的に削除する

    docker rmi -f image_name

容器:

  1. すべてのコンテナを一覧表示する

    docker ps -a

  2. 一つの容器を取り出す

    docker rm container_id

  3. 1つのコンテナを強制的に削除する

    docker rm -f container_id

32
hackfox code

VonCの古いDockerコンテナの削除方法にコメントして更新されました。

Docker 1.13(2016年第4四半期)では、以下のことが可能になりました。

docker system Pruneは、未使用のデータをすべて削除します(つまり、コンテナが停止し、コンテナがないボリューム、コンテナがないイメージの順に)。

PR 26108 および commit 86de7c0 を参照してください。Dockerデーモンのデータがディスク上でどれだけのスペースを取っているかを視覚化し、「不要な」余分なデータを簡単にクリーンアップできるようにするための新しいコマンドがいくつか導入されています。

docker system Prune

WARNING! This will remove:
    - all stopped containers
    - all volumes not used by at least one container
    - all images without at least one container associated to them
Are you sure you want to continue? [y/N] y
27
qkrijger

コンテナの削除

  1. 特定のコンテナを削除する

    docker rm CONTAINER_ID CONTAINER_ID
    
    • 単一画像の場合

      docker rm  70c0e19168cf
      
    • 複数の画像の場合

      docker rm  70c0e19168cf c2ce80b62174
      
  2. 終了したコンテナを削除する

    docker ps -a -f status=exited
    
  3. すべてのコンテナを削除する

    docker ps -q -a | xargs docker rm
    

画像を削除する

docker rmi IMAGE_ID
  1. 特定の画像を削除する

    • 単一画像の場合

      docker rmi ubuntu
      
    • 複数の画像の場合

      docker rmi ubuntu Alpine
      
  2. ぶら下がっている画像を削除する
    ダングリングイメージは、Dockerイメージが複数のイメージで構成されているため、タグ付きイメージとは無関係のレイヤーです。

    docker rmi -f $(docker images -f dangling=true -q)
    
  3. すべてのDockerイメージを削除する

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

ボリュームを削除する

ボリュームを一覧表示するには、docker volume lsを実行します。

  1. 特定のボリュームを削除する

    docker volume rm VOLUME_NAME
    
  2. ダングリングボリュームを削除する

    docker volume rm $(docker volume ls -f dangling=true -q)
    
  3. コンテナとそのボリュームを削除する

    docker rm -v CONTAINER_NAME
    
20

docker rm container_name

docker rmi image_name

docker help

rm 1つ以上のコンテナを削除する

rmi 1つ以上の画像を削除

19
KunMing Xie
docker rmi  91c95931e552

デーモンからのエラー応答:競合。コンテナー76068d66b290が使用しているため91c95931e552を削除できません。-fを使用してFATAを強制します。エラー:1つ以上のイメージを削除できませんでした

コンテナIDを探す

# docker ps -a

# docker rm  daf644660736 
13
lakshmikandan

まず、削除しようとしているDockerイメージに添付されているDockerコンテナーを停止して削除する必要があります。

だから、そのために、まず

  • docker stop container-id - 実行中のコンテナを停止する
  • docker rm container-id - コンテナを削除/削除する

それで、

  • docker rmi image-id - 画像を削除/削除する
4

バージョン1.13以降の場合

docker image rm [OPTIONS] IMAGE [IMAGE...]

比較する:

[OPTIONS]は違いがないようです。

--force , -f        Force removal of the image
--no-Prune          Do not delete untagged parents

From: Docker 1.13の紹介

再構成されたCLI

Docker 1.13では、相互作用する論理オブジェクトの下に座るようにすべてのコマンドを再編成しました。例えば、コンテナーのliststartは現在docker containerのサブコマンドであり、historydocker imageのサブコマンドです。

これらの変更により、Docker CLIの構文を整理し、ヘルプテキストを改善し、Dockerを使いやすくしています。 古いコマンド構文はまだサポートされていますが、私たちはみんなに新しい構文 を採用することを勧めます。

2
tgogos

を使用してそれらをすべて削除します

ステップ1:すべての容器を殺す

for i in `Sudo docker ps -a | awk '{ print $1 }'`; do Sudo docker kill $i ; done

ステップ2:RMを最初に

for i in `Sudo docker ps -a | awk '{ print $1 }'`; do Sudo docker rm $i ; done

ステップ3:forceを使って画像を削除する

for i in `Sudo docker images | awk '{ print $3}'`; do  Sudo docker rmi --force $i ; done

子の依存関係のために削除できないというエラーが発生した場合は、手順1を使用してください。

1
chandank

Dockerはimagesを削除するためのコマンドを提供しています。

Imagesを表示/削除します。

docker images
docker images -a # All images
docker images --no-trunc # List the full length image IDs

docker images --filter "dangling=true" // Show unstage images
docker rmi $(docker images -f "dangling=true" -q) # Remove on unstages images

docker rmi <REPOSITORY> or <Image ID> # Remove a single image

docker image Prune # Interactively remove dangling images
docker image Prune -a # Remove all images

or 

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

また、filterパラメータを使用して一度に一連の画像を削除することもできます。

例:

$docker images --filter "before=<hello-world>" // It will all images before hello-world

$docker images --filter "since=<hello-world>" // It will all images since hello-world

だからあなたはこのようなフィルタ画像を削除することができます:

docker rmi $(docker images --filter "since=<hello-world>")
docker rmi $(docker images --filter "before=<hello-world>")
1
Mr Singh

これは、タグ付けされた(名前付き)画像を削除するためのシェルスクリプトです。 docker-rmiとして保存し、 'docker-rmi my-image-name'を使用して実行します。

#!/bin/bash

IMAGE=$1

if [ "$IMAGE" == "" ] ; then
  echo "Missing image argument"
  exit 2
fi

docker ps -qa -f "ancestor=$IMAGE" | xargs docker rm
docker rmi $IMAGE
1
Alex M

自動的にまたは定期的に終了したコンテナをクリーンアップし、実行中のコンテナで使用されていないイメージとボリュームを削除したい場合は、イメージmeltwater/docker-cleanupをダウンロードできます。

私たちは複数のサーバーに1日に数回デプロイするので、私は本番環境でこれを使います、そして私はクリーンアップするためにすべてのサーバーに行きたくありません(それは苦痛でしょう)。

とにかく走れ:

docker run -d -v /var/run/docker.sock:/var/run/docker.sock:rw  -v /var/lib/docker:/var/lib/docker:rw --restart=unless-stopped meltwater/docker-cleanup:latest

これは30分ごとに実行され(またはDELAY_TIME = 1800オプションを使用して設定した時間が長い場合)、終了したコンテナとイメージをクリーンアップします。

より多くの詳細: https://github.com/meltwater/docker-cleanup/blob/master/README.md

1
Innocent Anigbo