docker kapsayıcısını durdurmak ve kaldırmak için tek komut


138

docker stopVe docker rmkomutunu birleştirebilecek herhangi bir komut var mı ? Çalışan bir kapsayıcıyı her silmek istediğimde, sırayla 2 komut yürütmem gerekiyor, kombine bir komutun bu işlemi basitleştirebileceğini merak ediyorum.

docker stop CONTAINER_ID
docker rm CONTATINER_ID

2
Konteynere bağlıdır: ctl.io/developers/blog/post/…
VonC

Yanıtlar:


238

Kullanabilirsiniz :

docker rm -f CONTAINER_ID

Hala çalışıyor olsa bile kabı çıkarır.

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

Ayrıca kaplarınızı --rmseçenekle çalıştırabilirsiniz, durduğunda otomatik olarak kaldırılır.

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

Düzenleme: Verileriniz rm -fiçin tehlikeli olabilir ve en iyi test veya geliştirme kapları için uygundur. @ Bernard'ın bu konudaki yorumu okunmaya değer.


16
Dikkatli ol. docker rm -fkaba bir SIGKILL sinyali gönderir. Bu, kabın durumunu doğru bir şekilde kaydetmesi için zaman tanımayabilir. Olmayan vatansız kaplar için kimse gerçekten kimlerin kullanabileceği docker stopizledi docker rm. Bu, bir SIGTERM sinyali gönderir; bu, varsayılan olarak konteynerlere docker arka plan programı sonunda bir SIGKILL göndermeden önce kapanmalarını gerçekleştirmek için en fazla 10 saniye verir.
Bernard

3
Kısa ömürlü kaplar için en uygun --rm seçeneğini buluyorum.
Prashant Sinha

30
docker stop CONTAINER_ID | xargs docker rm

Zekice fikir. Diğer komutlar için de kullanılabileceği için, bunları tekrar etmeden veya bir değişken kullanmadan iki komut üzerine bir argüman iletmek istediğiniz için seviyorum.
Lion

16

$_Son ekoyu veren tek bir komutla kabı durdurabilir ve kaldırabilirsiniz

docker stop CONTAINER && docker rm $_

7

Benim durumumda tüm çalışan konteynerleri kaldırmak için kullandım

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


2

Tüm kapları çıkarın: docker ps -aq | xargs docker rm -f


İzin verilmedi hatası var. Sudo eklendi. sudo docker ps -aq | sudo xargs docker rm -f
Hussain K

2

Bu, -f kullandığımız kapsayıcıları çalıştırmak da dahil tüm görüntüleri durduracak ve kaldıracaktır

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

1

Kaldırmak istediğiniz kapsayıcıların adını veya kimliğini bulmak için -a bayrağıyla docker ps komutunu kullanın

docker ps -a

Kaldırmak için: $ docker rm ID_or_Name ID_or_Name

Çıkıştan sonra bir kabı çıkarın:

İşlemi tamamladıktan sonra saklamak istemeyeceğiniz bir kap oluştururken biliyorsanız, çıktıktan sonra otomatik olarak silmek için docker run --rm komutunu çalıştırabilirsiniz.

Çalıştır ve Kaldır: docker run --rm image_name

Çıkan tüm kapları çıkarın:

Docker ps -a kullanarak kapları bulabilir ve durumlarına göre filtreleyebilirsiniz: oluşturuldu, yeniden başlatıldı, çalışıyor, duraklatıldı veya çıkıldı. Çıkılan kapsayıcıların listesini gözden geçirmek için, duruma göre filtrelemek üzere -f bayrağını kullanın. Doğruladıktan sonra, bu kapsayıcıları kaldırmak istediğinizde, kimlikleri docker rm komutuna iletmek için -q tuşunu kullanın.

Liste:

docker ps -a -f status=exited

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

Birden fazla filtre kullanarak kapları çıkarın :

Docker filtreleri, filtre bayrağını ek bir değerle yineleyerek birleştirilebilir. Bu, her iki koşulu da karşılayan kapların bir listesi ile sonuçlanır. Örneğin, Oluşturuldu (geçersiz bir komutla bir kapsayıcı çalıştırdığınızda oluşabilecek bir durum) veya Çıkıldı olarak işaretlenen tüm kapsayıcıları silmek istiyorsanız, iki filtre kullanabilirsiniz:

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

Tüm kapları durdurun ve çıkarın:

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

0

Tek bir kabı çıkarmak için

docker rm -f CONTAINER_ID

Tüm kapları çıkarmak için

docker rm -f `docker container ps -qa`

0

Durdurulmuş tüm kapları çıkarmak için docker system prune

Canlı konteyneri durdurmak için docker stop CONTAINER_ID10 saniye bekler vedocker kill CONTAINER_ID

Veya ile docker kill CONTAINER_IDkabı hemen durdurabilirsiniz

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.