dockerコンテナーを停止および削除する単一のコマンド


138

組み合わせることができます任意のコマンドがありますdocker stopdocker rm一緒にコマンドは?実行中のコンテナーを削除するたびに、2つのコマンドを順番に実行する必要があります。結合されたコマンドがあると、このプロセスを簡略化できるのでしょうか。

docker stop CONTAINER_ID
docker rm CONTATINER_ID

2
これは、コンテナに依存します:ctl.io/developers/blog/post/...
VonC

回答:


236

使用できます:

docker rm -f CONTAINER_ID

コンテナーがまだ実行中であっても削除します。

https://docs.docker.com/engine/reference/commandline/rm/

--rmオプションでコンテナを実行することもできます。停止すると自動的に削除されます。

https://docs.docker.com/engine/reference/run/#clean-up-rm

編集:これrm -fはデータにとって危険な場合があり、テストまたは開発コンテナーに最適です。このテーマに関する@Bernardのコメントは一読の価値があります。


15
注意してください。docker rm -fSIGKILLシグナルをコンテナーに送信します。これにより、コンテナーがその状態を正しく保存する時間を確保できない場合があります。非ステートレスコンテナの場合docker stopは、実際にを続けて使用する必要がありますdocker rm。これにより、SIGTERMシグナルが送信されます。デフォルトでは、Dockerデーモンが最終的にSIGKILLを送信する前に、コンテナーがシャットダウンを実行するための最大10秒が与えられます。
Bernard

3
存続期間の短いコンテナーに最も適切な--rmオプションを見つけました。
Prashant Sinha

30
docker stop CONTAINER_ID | xargs docker rm

賢いアイデア。他のコマンドにも使用でき、2つのコマンドに繰り返しを使用したり、変数を使用したりせずに引数を渡す必要があるため、このコマンドが気に入っています。
ライオン

16

あなた$_は最後のエコーを与える単一のコマンドでコンテナを停止して削除することができます

docker stop CONTAINER && docker rm $_

7

私の場合、実行中のすべてのコンテナを削除するために、私は

docker rm -f $(docker ps -a -q); docker rmi $(docker images -q)



2

-fを使用しているため、これにより、実行中のコンテナーを含むすべてのイメージが停止して削除されます

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

1

-aフラグを指定してdocker psコマンドを使用し、削除するコンテナーの名前またはIDを見つけます。

docker ps -a

削除するには:$ docker rm ID_or_Name ID_or_Name

終了時にコンテナを削除します。

コンテナーを作成しているときに、それを保持したくない場合は、docker run --rmを実行して、終了時にコンテナーを自動的に削除できます。

実行して削除: docker run --rm image_name

終了したコンテナをすべて削除します。

docker ps -aを使用してコンテナを見つけ、ステータス(作成、再起動、実行中、一時停止、終了)でフィルタリングできます。終了したコンテナのリストを確認するには、-fフラグを使用して、ステータスに基づいてフィルタリングします。これらのコンテナーを削除することを確認したら、-qを使用してIDをdocker rmコマンドに渡します。

リスト:

docker ps -a -f status=exited

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

複数のフィルターを使用してコンテナーを削除します

Dockerフィルターは、追加の値でフィルターフラグを繰り返すことで組み合わせることができます。これにより、いずれかの条件を満たすコンテナのリストが表示されます。たとえば、作成済み(無効なコマンドでコンテナーを実行したときに発生する可能性がある状態)または終了済みとしてマークされているすべてのコンテナーを削除する場合は、2つのフィルターを使用できます。

docker ps -a -f status=exited -f status=created

すべてのコンテナを停止して削除します。

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

0

単一のコンテナを削除するため

docker rm -f CONTAINER_ID

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

docker rm -f `docker container ps -qa`

0

停止しているすべてのコンテナを削除するには docker system prune

ライブコンテナを停止するには、docker stop CONTAINER_ID10秒待ってから呼び出しますdocker kill CONTAINER_ID

またはを使用するとdocker kill CONTAINER_ID、すぐにコンテナを停止できます

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