comando único para detener y eliminar el contenedor acoplable

138

¿Hay algún comando que pueda combinar el comando docker stopy docker rm? Cada vez que quiero eliminar un contenedor en ejecución, necesito ejecutar 2 comandos secuencialmente, me pregunto si hay un comando combinado que pueda simplificar este proceso.

docker stop CONTAINER_ID
docker rm CONTATINER_ID
mainframer
fuente
2
Depende del contenedor: ctl.io/developers/blog/post/…
VonC

Respuestas:

238

Puedes usar :

docker rm -f CONTAINER_ID

Eliminará el contenedor incluso si todavía se está ejecutando.

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

También puede ejecutar sus contenedores con la --rmopción, se eliminará automáticamente cuando se detenga.

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

Editar: El rm -fpodría ser peligroso para sus datos y es el más adecuado para los contenedores de prueba o de desarrollo. Vale la pena leer el comentario de @ Bernard sobre este tema.

vmonteco
fuente
16
Ten cuidado. docker rm -fenvía una señal SIGKILL al contenedor. Esto puede no permitir que el contenedor tenga tiempo para guardar su estado correctamente. Para los contenedores no apátridas, uno realmente debería usar docker stopseguido de docker rm. Esto envía una señal SIGTERM que, por defecto, le da a los contenedores un máximo de 10 segundos para que se apaguen antes de que el demonio acoplable finalmente envíe un SIGKILL.
Bernard
3
Encuentro la opción --rm más apropiada para contenedores de corta duración.
Prashant Sinha
30
docker stop CONTAINER_ID | xargs docker rm
ortex
fuente
Idea inteligente. Me gusta, ya que también podría usarse para otros comandos, donde desea pasar un argumento sobre dos comandos sin repetirlos o usar una variable.
León
16

Puede detener y eliminar el contenedor con un solo comando que $_le da el último eco

docker stop CONTAINER && docker rm $_
Axel Monroy
fuente
7

En mi caso, para eliminar todos los contenedores en ejecución, utilicé

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

Retire todos los contenedores: docker ps -aq | xargs docker rm -f

Andriy Tolstoy
fuente
Tengo permiso denegado error. Sudo agregado. sudo docker ps -aq | sudo xargs docker rm -f
Hussain K
2

Esto detendrá y eliminará todas las imágenes, incluidos los contenedores en ejecución, ya que estamos usando -f

docker rmi -f $(docker images -a -q)
Pranoy Gn
fuente
1

Use el comando docker ps con el indicador -a para ubicar el nombre o ID de los contenedores que desea eliminar

docker ps -a

Para eliminar: $ docker rm ID_o_Name ID_or_Name

Retire un contenedor al salir:

Si sabe cuando está creando un contenedor que no querrá mantenerlo una vez que haya terminado, puede ejecutar docker run --rm para eliminarlo automáticamente cuando salga.

Ejecutar y eliminar: docker run --rm image_name

Retire todos los contenedores salidos:

Puede ubicar contenedores utilizando docker ps -a y filtrarlos por su estado: creados, reiniciados, en ejecución, pausados ​​o salidos. Para revisar la lista de contenedores salidos, use el indicador -f para filtrar según el estado. Cuando haya verificado que desea eliminar esos contenedores, use -q para pasar los ID al comando docker rm.

Lista:

docker ps -a -f status=exited

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

Retire los contenedores con más de un filtro :

Los filtros Docker se pueden combinar repitiendo la bandera de filtro con un valor adicional. Esto da como resultado una lista de contenedores que cumplen cualquiera de las condiciones. Por ejemplo, si desea eliminar todos los contenedores marcados como Creado (un estado que puede resultar cuando ejecuta un contenedor con un comando no válido) o Salido, puede usar dos filtros:

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

Detener y quitar todos los contenedores:

docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
Prakash AWS
fuente
0

Para retirar un solo contenedor

docker rm -f CONTAINER_ID

Para retirar todos los contenedores

docker rm -f `docker container ps -qa`
Abhinav Mehta
fuente
0

Para eliminar todos los contenedores detenidos docker system prune

Para detener el contenedor en vivo, docker stop CONTAINER_IDespera 10 segundos y llamadocker kill CONTAINER_ID

O con docker kill CONTAINER_ID, puede detener inmediatamente el contenedor

Nuriddin Kudratov
fuente