この質問はに関連しています。私は過剰な、実行されていない、Dockerコンテナについて心配すべきですか?。
古い容器をどうやって取り除くのかと思っています。 docker rm 3e552code34a
を使用すると、単一のものを削除できますが、私はすでにたくさんのものを持っています。 docker rm --help
は選択オプションを与えません(allのように、または画像名で)。
手動で簡単に削除できる場所に、これらのコンテナが格納されているディレクトリがあるかもしれません。
Docker 1.13.x には、 DockerコンテナーPrune という新しい機能があります。docker container Prune
これはあなたが望むことをするでしょうし、すべてのプラットフォームで同じように動作するはずです。
DockerシステムのPrune :docker system Prune
もあります。これは、コンテナー、イメージ、ボリューム、ネットワークをすべて1つのコマンドでクリーンアップします。
元の答え:
Dockerのクリーンアップコマンドについての話があります。このチケットに関する情報を見つけることができます。'clean'コマンドを実装する(#928)
そのコマンドが利用可能になるまでは、Dockerコマンドを他のUNIXコマンドと一緒にストリングにして、必要なものを入手することができます。これは、数週間前の古いコンテナをクリーンアップする方法の例です。
$ docker ps --filter "status=exited" | grep 'weeks ago' | awk '{print $1}' | xargs --no-run-if-empty docker rm
当然のことですが、この例は https://Twitter.com/jpetazzo/status/347431091415703552 からのものです。
私がGuillaume J. Charmesから手に入れたもう1つの方法(それが原因となっているクレジット):
docker rm `docker ps --no-trunc -aq`
エレガントな方法ですべてのコンテナを削除します。
そしてBartosz Bilickiによる、Windows用:
FOR /f "tokens=*" %i IN ('docker ps -a -q') DO docker rm %i
PowerShellの場合:
docker rm @(docker ps -aq)
Docker 1.13(2016年第4四半期)の更新、 VonC ( このスレッドの後半 )へのクレジット:
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
更新された回答 今すぐdocker system Prune
またはdocker container Prune
を使用してください。 VonCの最新の回答 を参照してください。
前回の回答 上記のいくつかの異なるヒントを作成して、実行中でないコンテナをすべて削除する最もエレガントな方法は次のようになります。
docker rm $(docker ps -q -f status=exited)
-q
はコンテナーIDだけを表示します(列ヘッダーなしで)-f
はあなたが印刷された容器のあなたのリストをフィルターにかけることを可能にします(この場合我々は終了した容器だけを示すためにフィルターをかけています)公式のやり方 は:
docker rm `docker ps -aq`
Dockerのメンテナは、このためのコマンドがないことを示しました - そしてあなたはそのようなコマンドを作成します:
これについてはすでに説明したので、ユーザーはDockerにコードを追加しなくても上記の行を使用することを好みます。
Docker 1.13(2016年第4四半期)では、以下のことが可能になりました。
docker system Prune -a
は、すべての未使用データを削除します(つまり、コンテナの停止、コンテナのないボリューム、コンテナのないイメージの順に)。
-aなしのdocker system Prune
は、 コメント付き by /smilebomb のように、ぶら下がっている画像、またはタグのない画像のみを削除します(画像の場合)。
PR 26108 および commit 86de7c0 を参照してください。Dockerデーモンのデータがディスク上でどれだけのスペースを取っているかを視覚化し、「不要な」余分なデータを簡単にクリーンアップできるようにするための新しいコマンドがいくつか導入されています。
docker system Prune -a
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
As wjv comments、
docker {container,image,volume,network} Prune
もあります。これは、oneタイプのオブジェクトの未使用のインスタンスを削除するために使用できます。
Docker 1.13以降でのみ commit 913e5cb で導入されました。
docker container Prune
docker ps
とともに filtering を使用することが可能になりました。
docker rm $(docker ps -q -f status=exited)
そして images :の場合
docker rmi $(docker images -q -f "dangling=true")
ただし、一致するコンテナがない場合、これらのいずれもdocker rm
またはdocker rmi
がエラーをスローする原因になります。古いdocker rm $(docker ps -aq)
のトリックは、実行中のコンテナをすべて削除しようとしたため、さらに失敗しました。
これはあなたの~/.bashrc
または~/.profile
を追加するためのよりきれいなスクリプトです:
# Use `docker-cleanup --dry-run` to see what would be deleted.
function docker-cleanup {
EXITED=$(docker ps -q -f status=exited)
DANGLING=$(docker images -q -f "dangling=true")
if [ "$1" == "--dry-run" ]; then
echo "==> Would stop containers:"
echo $EXITED
echo "==> And images:"
echo $DANGLING
else
if [ -n "$EXITED" ]; then
docker rm $EXITED
else
echo "No containers to remove."
fi
if [ -n "$DANGLING" ]; then
docker rmi $DANGLING
else
echo "No images to remove."
fi
fi
}
編集:下記のように、元の答えはコンテナではなく画像を削除することでした。ドキュメントへの新しいリンクを含め、両方に答えるために更新されました。新しいps
フィルタリングについて言及してくれたAdrian(およびRyanの回答)に感謝します。
_更新_ 2017 (最新)
docker container Prune
これ - 2017 (OLD)
すべての停止した容器を削除するには
docker rm $(docker ps -a -q)
すべての容器を削除するには (停止して停止しない)
docker rm -f $(docker ps -a -q)
停止したコンテナをすべて削除します。
docker rm $(docker ps -a | grep Exited | awk '{print $1}')
pauk96 によるコメントから:
バージョン1.3.0以降、
docker ps
の代わりにgrep Exited
でフィルターを使用でき、docker ps -a -f status=exited
を使用できます。また、-q
を使用すると、完全な出力ではなくコンテナIDのみを取得できます。そのためにawkを使用する必要はありません。
すべてのコンテナを削除したくない場合は、特定のコンテナの前後に作成されたすべてのコンテナをdocker ps --before <container-ID>
またはdocker ps --since <container-ID>
で選択できます。この機能は少なくともDockerバージョン0.6.5にあります。
あなたがあなたのシステムを開発し、そして今それが機能しているとしましょう、しかし多くのコンテナが残っています。その作業バージョンより前に作成されたコンテナを削除したいのです。作業コンテナのIDをdocker ps
で決定します。
他のコンテナの前に作成されたコンテナを削除します
docker rm $(docker ps --before 9c49c11c8d21 -q)
もう一つの例。データベースはすでにDockerコンテナー上で稼働しています。アプリケーションを別のコンテナーで実行するように開発しましたが、今では不要なコンテナーが多数あります。
特定のコンテナの後に作成されたコンテナを削除します
docker rm $(docker ps --since a6ca4661ec7f -q)
DockerはUbuntuの/var/lib/docker/containers
にコンテナーを格納します。追加のコンテナは他に害を及ぼさないと思いますが、ディスクスペースを占有します。
更新: Dockerバージョン1.13(2017年1月リリース)以降、次のコマンドを発行して、停止したコンテナー、未使用のボリューム、未使用のイメージ、未使用のネットワークをクリーンアップできます。
docker system Prune
exited
ステータスを持つコンテナのみを削除するようにしたい場合は、次のようにします。
docker ps -aq -f status=exited | xargs docker rm
同様に、docker関連のものを整理している場合は、タグなしの名前なしの画像を次のようにして削除できます。
docker images -q --no-trunc -f dangling=true | xargs docker rmi
タグなしのコンテナと画像を削除するdocker-cleanup
スクリプトがあります。更新についてはソースを確認してください。
#!/bin/sh
# Cleanup docker files: untagged containers and images.
#
# Use `docker-cleanup -n` for a dry run to see what would be deleted.
untagged_containers() {
# Print containers using untagged images: $1 is used with awk's print: 0=line, 1=column 1.
docker ps -a | awk '$2 ~ "[0-9a-f]{12}" {print $'$1'}'
}
untagged_images() {
# Print untagged images: $1 is used with awk's print: 0=line, 3=column 3.
# NOTE: intermediate images (via -a) seem to only cause
# "Error: Conflict, foobarid wasn't deleted" messages.
# Might be useful sometimes when Docker messed things up?!
# docker images -a | awk '$1 == "<none>" {print $'$1'}'
docker images | tail -n +2 | awk '$1 == "<none>" {print $'$1'}'
}
# Dry-run.
if [ "$1" = "-n" ]; then
echo "=== Containers with uncommitted images: ==="
untagged_containers 0
echo
echo "=== Uncommitted images: ==="
untagged_images 0
exit
fi
# Remove containers with untagged images.
echo "Removing containers:" >&2
untagged_containers 1 | xargs --no-run-if-empty docker rm --volumes=true
# Remove untagged images
echo "Removing images:" >&2
untagged_images 3 | xargs --no-run-if-empty docker rmi
ソース: https://github.com/blueyed/dotfiles/blob/master/usr/bin/docker-cleanup
最初に、それらを取除くことを試みる前に容器を動かすことを止めなさい
docker rm $(docker stop -t=1 $(docker ps -q))
kill
の代わりにstop
を使用できます。毎回新しい変数を作成するのではなく、それらを再実行する傾向があるので私の場合はstop
を好みます。
注: コンテナを停止しようとするとエラーが発生します。
エラー:実行中のコンテナを削除することは不可能です。最初に停止してください
docker rm $(docker ps -a -q)
Windowsシェルからすべてのコンテナを削除する
FOR /f "tokens=*" %i IN ('docker ps -a -q') DO docker rm %i
https://github.com/HardySimpson/docker-cleanup
次のものを削除する、小さなオールインワンシェル。
Crontabジョブとして実行する予定
<none>:<none>
画像を削除します2>/dev/null
かどうかを決めることができますつかいます:
docker rm -f $(docker ps -a -q)
ローカルに存在するすべてのコンテナを強制的に停止して削除します。
停止しているすべての容器を取り除きます。
Sudo docker rm $(数独ドッカーps -a -q)
これは、docker ps -a -qを使用してすべてのコンテナーのリストを取得し、それらのIDをdocker rmに渡すことによって、停止したすべてのコンテナーを削除します。実行中のコンテナを削除してはいけません。実行中のイメージを削除できないことがわかります。
タグなしの画像をすべて削除します
今、あなたはいくらかのスペースを節約するために古い画像をきれいにしたいです。
Sudo docker rmi $(Sudoドッカー画像-q --filter "dangling = true")
そのため、個人的には、最新のn個のコンテナーとイメージだけを保持しながら、イメージとコンテナーの両方のデプロイ・スクリプトの一部としてこれを行うことをお勧めします。私はgit tag
で使っているのと同じバージョン管理スキーマで自分のDockerイメージをタグ付けし、常に最新のDockerイメージを "latest"でタグ付けします。つまり、何もクリーンアップしないと、Dockerのイメージは次のようになります。
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
some_repo/some_image 0.0.5 8f1a7c7ba93c 23 hours ago 925.4 MB
some_repo/some_image latest 8f1a7c7ba93c 23 hours ago 925.4 MB
some_repo/some_image 0.0.4 0beabfa514ea 45 hours ago 925.4 MB
some_repo/some_image 0.0.3 54302cd10bf2 6 days ago 978.5 MB
some_repo/some_image 0.0.2 0078b30f3d9a 7 days ago 978.5 MB
some_repo/some_image 0.0.1 sdfgdf0f3d9a 8 days ago 938.5 MB
さて、もちろん私はすべてのプロダクションボックスで私のすべてのイメージ(またはコンテナ)を永続的な状態に戻したくありません。最後の3つか4つをロールバック用にして他のすべてを取り除きたいだけです。ここではUnixのtail
があなたの親友です。 docker images
とdocker ps
はどちらも日付順になっているため、tail
を使用して上位3つ以外のすべてを選択し、それらを削除することができます。
docker rmi $(docker images -q | tail -n +4)
配置スクリプトと一緒に(またはローカルに)実行して、余計なスペースを取らずに古いイメージで雑然とすることなく、快適にロールバックするのに十分なイメージだけを常に保持します。
個人的には、プロダクションボックスには常に1つのコンテナしか入れませんが、もっと必要な場合は、コンテナに対しても同じことができます。
docker rm $(docker ps -aq | tail -n +4)
最後に、私の単純化した例では、一度に1つのリポジトリしか扱っていませんが、もっとたくさん持っているのであれば、同じ考えでもう少し洗練されたものにすることができます。 some_repo/some_imageから最後の3つの画像を保存したいとします。 grep
とawk
を混在させることができます。
docker rmi $(docker images -a | grep 'some_repo/some_image' | awk '{print $3}' | tail -n +4)
繰り返しますが、同じ考え方がコンテナーにも当てはまりますが、この時点でそれが得られるので、例を挙げないでください。
新しい方法: spotify/docker-gcがうまくやっています。
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /etc:/etc spotify/docker-gc
環境設定に対応しています
複数のタグを持つ画像を強制的に削除する
FORCE_IMAGE_REMOVAL=1
コンテナの強制削除
FORCE_CONTAINER_REMOVAL=1
最近終了したコンテナと画像をガベージコレクションから除外する
GRACE_PERIOD_SECONDS=86400
この設定は、GRACE_PERIOD_SECONDS秒前に作成された画像の削除も防ぎます。
ドライラン
DRY_RUN=1
孤立したコンテナボリュームのクリーンアップ CLEAN_UP_VOLUMES = 1
参照: docker-gc
古いやり方:
実行されていない古いコンテナを削除します
docker ps -a -q -f status=exited | xargs --no-run-if-empty docker rm
OR
docker rm $(docker ps -a -q)
稼働していないdockerコンテナに関連付けられているすべての画像を削除します
docker images -q | xargs --no-run-if-empty docker rmi
dockerバージョン1.10.x以降の孤立したdockerボリュームをクリーンアップします
docker volume ls -qf dangling=true | xargs -r docker volume rm
期間に基づく
docker ps -a | grep "weeks ago" | awk "{print $1}" | xargs --no-run-if-empty docker rm
docker ps -a | grep "days ago" | awk "{print $1}" | xargs --no-run-if-empty docker rm
docker ps -a | grep "hours ago" | awk "{print $1}" | xargs --no-run-if-empty docker rm
最も古い5つの容器を取り出す:
docker rm `docker ps -aq | tail -n 5`
残っているコンテナの数を確認してください。
docker ps -aq | wc -l
すべてのdockerプロセスを削除します。
docker rm $(docker ps -a -q)
特定のコンテナを削除します。
$ docker ps -a (lists all old containers)
$ docker rm container-Id
次のコマンドを使用して、終了したコンテナを削除できます。
docker rm $(Sudo docker ps -a | grep Exit | cut -d ' ' -f 1)
これはdocker上の古い画像も削除するための完全な要旨です。 古いDockerコンテナと画像を削除するための要旨 。
#!/bin/bash
# docker-gc --- Remove stopped docker containers
RUNNING=$(docker ps -q)
ALL=$(docker ps -a -q)
for container in $ALL ; do
[[ "$RUNNING" =~ "$container" ]] && continue
echo Removing container: $(docker rm $container)
done
停止したコンテナのみを削除できます。初めにそれらすべてを止めなさい
docker stop $(docker ps -a -q)
それからあなたは削除することができます
docker rm $(docker ps -a -q)
私はいつもdocker rmi $(docker ps -a -q)
を使ってすべての画像を削除します。
/var/lib/docker/graph
が失敗したとき、ディレクトリdocker rmi
を削除することができます。
コンテナとぶら下がっている画像をきれいにするためにこのコマンドを試してください。
docker system Prune -f
すべてのコンテナを一覧表示する
docker ps -aq
実行中のコンテナをすべて停止する
docker stop $(docker ps -aq)
すべての容器を取り除く
docker rm $(docker ps -aq)
すべての画像を削除
docker rmi $(docker images -q)
注: 最初にあなたはそれらを削除する前にすべての実行中のコンテナを停止する必要があります。また、画像を削除する前に、その依存コンテナを停止して削除する必要があります。
次のネストしたコマンドを使用してください。
$ Sudo docker stop $(Sudo docker ps -a -q)
このコマンドは実行中のすべてのコンテナを停止します。
$ Sudo docker rm $(Sudo docker ps -a -q)
このコマンドはすべてのコンテナを削除します。
自動的にまたは定期的に終了したコンテナをクリーンアップし、実行中のコンテナで使用されていないイメージとボリュームを削除したい場合は、イメージ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オプションを使用して設定した時間が長い場合)、終了したコンテナとイメージをクリーンアップします。
詳細情報:Dockerのクリーンアップ
泣かずにすべての容器を取り出すには:
Sudo docker ps -a | grep -v CONTAINER | awk '{print $1}' | xargs --no-run-if-empty Sudo docker rm -f
docker rm --force `docker ps -qa`
docker rm $(docker ps -a | awk '/myimage:mytag/{print $1}')
On Ubuntu 14.04(Trusty Tahr):
$ for CON in `docker ps -qa`; do docker rm $CON ; done
これは単なる通常のBashコマンドなので、すべてのBash準拠端末で機能するはずです。
興味のある人のために、私はqkrijgerから例を取り、それをすべてクリア(すべてを停止して削除)に変えました
docker stop `docker ps --no-trunc -aq` ; docker rm `docker ps --no-trunc -aq`
#!/bin/bash
echo Cleanup unused containers
unused_containers=$(docker ps -a -q --filter="status=exited")
if [[ -n $unused_containers ]]
then
docker rm $unused_containers
fi
echo Cleanup unused images
unused_images=$(docker images | grep '^<none>' | awk '{print $3}')
if [[ -n $unused_images ]]
then
docker rmi $unused_images
fi
港湾労働者管理ツールPortainerを使用する
このツールを使用して、使用されていないボリュームやイメージをすべての古いコンテナを管理できます。
港湾労働者向けのシンプルな管理UI
携帯電話を配備する方法
以下のDockerコマンドを使ってPortainerをデプロイします。
$ docker volume create portainer_data
$ docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
ブラウザを使ってportainerが動作しているDockerエンジンのポート9000にアクセスするだけです。
注:-v /var/run/docker.sock:/var/run/docker.sock
オプションはLinux環境でのみ使用できます。
下記のコマンドは、すべてのコンテナを停止して削除するのに非常に便利です。 -f
(force)フラグを使用している場合は、実行中のすべてのコンテナを停止するので、別のコマンドで明示的に停止する必要はありません。
docker rm -f $(docker ps -a -q)
古いDockerコンテナを削除するのはとても簡単です。
すべてのコンテナーをリストします。
docker ps -a
docker ps (To list the running containers)
docker ps -a
を打つと、それはあなたにコンテナーID(それはユニークでa-z、A-Zそして0-9の組み合わせです)と共にコンテナーのリストを与えます。削除したいコンテナーIDをコピーして、以下をクリックしてください。
docker rm container_id
あなたのコンテナは/var/lib/docker/aufs
で作成されたレイヤーと一緒に削除されます(Ubuntuを使用している場合)。
指定コンテナを削除する
docker container rm container_id
コンテナーが実行中の場合は、削除する前にコンテナーを停止する必要があります。
docker container stop container_id
そしてこのコマンドは、既存のコンテナをすべて削除することです。
docker container rm $(docker container -a -q)
このプロセスには2つのステップ(停止と削除)があります。
実行中のマイクロサービスによって使用されているコンテナを停止します。
docker stop $(docker ps -a -q)
すべての容器を取り除く
docker rm $(docker ps -a -q)
単一のコンテナを削除
docker rm container-ID
これは、出てきたすべてのコンテナを削除するワンライナーです。
docker rm $(docker ps -a | grep Exited | grep -v CON | awk '{print $1}')
あなたがすべての画像を削除したい場合は、このようなものを使用することができます。
docker rmi $(docker images | sed -n '1!p' | awk '{print $3}')
これら2行のBashはいくつかのキーワードでコンテナを削除してから削除します。
containers_to_keep=$(docker ps -a | grep 'keep\|Up\|registry:latest\|nexus' | awk '{ print $1 }')
containers_to_delete=$(docker ps -a | grep Exited | grep -Fv "$containers_to_keep" | awk '{ print $1 }')
docker rm $containers_to_delete
この投稿から 。
これは、2日前(またはそれ以前)のコンテナを削除するためのスクリプトです。
#!/bin/bash
# This script will kill and remove containers older than 2 days.
#
docker ps -aq > /scripts/containers.txt
today=`date +%Y-%m-%d`
oldate=`date --date="2 day ago" +%Y-%m-%d`
while read p; do
cont=`docker inspect -f '{{ .Created }}' $p | cut -c 1-10`
echo " Created date of $p is $cont"
k=`echo $(( ( $(date -ud $today +'%s') - $(date -ud $cont +'%s'))/60/60/24 ))
echo $k
if [ $k -ge 2 ];
then
echo "Killing docker container $p"
docker kill $p
echo "Removing docker container $p"
docker rm $p
else
echo "Docker container $p is not one day old, so keeping the container."
fi
done </scripts/containers.txt
リポジトリからdocker-helperを使うことができます https://github.com/kartoza/docker-helpers 。インストールが終わったら、drmc
と入力してください。
私の経験からは、「このコンテナはまだ実行中」のようなエラーを避けるためにコンテナを削除する前に停止する必要があります。
Sudo /usr/bin/docker ps -aq | awk '{print $1}' | \
xargs --no-run-if-empty bash -c 'Sudo docker stop $@; Sudo docker rm $@' bash
私は私のドットファイルの中でエイリアスを保持します:
alias wipedocker="Sudo /usr/bin/docker ps -aq | awk '{print $1}' \
| xargs --no-run-if-empty bash -c 'Sudo docker stop $@; Sudo docker rm $@' bash"
実行中のコンテナで現在使用されていないものすべてを単純に削除するには、通常私のMacの.bash_profile
に入れる次の alias を使用します。
alias dockerclean="docker ps -q -a | xargs docker rm -v && docker images -q | xargs docker rmi"
dockerclean
がコマンドラインから呼び出されるときはいつでも、使われていないイメージレイヤと同様に停止したコンテナを削除します。実行中のコンテナや使用済みの画像については、警告メッセージを表示してスキップします。
すべてのコンテナのリスト(IDのみ)
docker ps -aq
実行中のコンテナをすべて停止します
docker stop $(docker ps -aq)
すべてのコンテナを削除する
docker rm $(docker ps -aq)
すべての画像を削除
docker rmi $(docker images -q)
Linuxインストールの場合は、必ず Sudo を使用してください。数ヶ月から数週間前の画像を探すのもいいでしょう。
Sudo docker ps -a | grep 'weeks ago\|months ago' | \
awk '{print $1}' | xargs --no-run-if-empty Sudo docker rm
私が使っている:
docker rm -v $(docker ps -a -q -f status=exited)
終了したコンテナを削除する
docker rmi -f $(docker images | grep "<none>" | awk "{print \$3}")
すべてのタグなしの画像を取り除くために。
私は以下のバリエーションを使います。
docker ps -a | grep 'cassandra.*Exited' | cut -d " " -f 1
最初の部分はすべてのプロセスの一覧です。
2番目は、 'cassandra'の後に 'Exited'が続くものだけを選択します。
3つ目は、イメージIDの後のすべてのテストを削除するので、イメージIDのリストが得られます。
そう、
docker rm $(docker ps -a | grep 'cassandra.*Exited' | cut -d " " -f 1)
この短いスクリプトは役に立つかもしれません(以前の答えからコンパイルされた)!
#!/bin/bash
# Remove dangling images
IMAGE_IDS=$(Sudo docker images -f "dangling=true" -q)
if [ -n "$IMAGE_IDS" ]; then
Sudo docker rmi $IMAGE_IDS > /dev/null 2>&1
echo 'Images removed' $IMAGE_IDS
fi
# Remove exited containers
CONTAINER_IDS=$(Sudo docker ps -a -q -f status=exited)
if [ -n "$CONTAINER_IDS" ]; then
Sudo docker rm -v $CONTAINER_IDS > /dev/null 2>&1
echo 'Containers remove $CONTAINER_IDS'
fi
docker rm -f $(docker ps -a -q)
がうまくいくでしょう。それは容器を止め、それらも取り除きます。
終了 および 再起動 dockerコンテナを削除するには、次のコマンドを使用しています。
docker stop --force $(docker ps -a|grep Exited| awk '{print $1}')
docker rm --force $(docker ps -a|grep Exited| awk '{print $1}')
docker stop --force $(docker ps -a|grep Restarting| awk '{print $1}')
docker rm --force $(docker ps -a|grep Restarting| awk '{print $1}')
none という名前の画像を削除するには、以下のコマンドを使用します。
docker image rm --force $(docker image ls |grep none |awk '{print $3}')