GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Cómo detener los contenedores de Docker

Este tutorial de Docker analiza los métodos para detener un solo contenedor de Docker, varios contenedores de Docker o todos los contenedores de Docker en ejecución a la vez. También aprenderá a detener con gracia un contenedor docker.

Para detener un contenedor docker, todo lo que tiene que hacer es usar el ID del contenedor o el nombre del contenedor de la siguiente manera:

docker stop container_ID_or_name

También puede usar el comando docker container stop container_id_or_name, pero esa es una palabra adicional en el comando y no proporciona ningún beneficio adicional, así que quédese con docker stop.

Pero hay más acerca de detener un contenedor acoplable que debe saber, especialmente si es un principiante de Docker.

Ejemplos prácticos para detener docker container

Discutiré varios aspectos relacionados con la detención de un contenedor docker en este tutorial:

  • Detener un contenedor docker
  • Detenga varios contenedores docker a la vez
  • Detenga todos los contenedores docker con una determinada imagen
  • Detener todos los contenedores docker en ejecución a la vez
  • Detener correctamente un contenedor docker

Antes de ver eso, debe saber cómo obtener el nombre o ID del contenedor.

Puede enumerar todos los contenedores docker en ejecución con docker ps dominio. Sin ninguna opción, el comando docker ps solo muestra los contenedores en ejecución.

[email protected]:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
1bcf775d8cc7        ubuntu              "bash"              8 minutes ago       Up About a minute                       container-2
94f92052f55f        debian              "bash"              10 minutes ago      Up 10 minutes                           container-1

La salida también le brinda el nombre del contenedor y la ID del contenedor. Puede usar cualquiera de estos dos para detener un contenedor.

Ahora vamos a detener los contenedores.

1. Detener un contenedor docker

Para detener un contenedor específico, use su ID o nombre con el comando de parada de la ventana acoplable:

docker stop container_name_or_ID

El resultado debería haber sido más descriptivo, pero solo muestra el nombre o ID del contenedor, cualquiera que haya proporcionado:

[email protected]:~$ docker stop 1bcf775d8cc7
1bcf775d8cc7

Puede usar el comando docker stop en un contenedor ya detenido. No arrojará ningún error ni una salida diferente.

Puede verificar si el contenedor se detuvo con el comando docker ps -a. La opción -a muestra todos los contenedores, ya sea que estén en ejecución o detenidos.

[email protected]:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
1bcf775d8cc7        ubuntu              "bash"              19 minutes ago      Exited (0) About a minute ago                       container-2
94f92052f55f        debian              "bash"              29 minutes ago      Up 29 minutes                                   container-1

Si el estado es Salido, significa que el contenedor ya no se está ejecutando.

2. Detener múltiples contenedores docker

También puede detener varios contenedores docker a la vez. Solo tiene que proporcionar los nombres e ID de los contenedores.

docker stop container_id_or_name_1 container_id_or_name_2 container_id_or_name_3

Como antes, la salida simplemente mostrará el nombre o ID de los contenedores:

[email protected]:~$ docker stop container-1 container-2 container-3
container-1
container-2
container-3

3. Detener todos los contenedores asociados con una imagen

Hasta ahora, lo que vio detener contenedores mencionando explícitamente su nombre o ID.

¿Qué sucede si desea detener todos los contenedores en ejecución de una determinada imagen de ventana acoplable? Imagine un escenario en el que desea eliminar una imagen acoplable pero tendrá que detener todos los contenedores en ejecución asociados.

Puede proporcionar los nombres o ID de los contenedores uno por uno, pero eso lleva mucho tiempo. Lo que puede hacer es filtrar todos los contenedores en ejecución en función de su imagen base.

Simplemente reemplace IMAGE_NAME por el nombre de la imagen de su ventana acoplable y debería poder detener todos los contenedores en ejecución asociados con esa imagen.

docker ps -q --filter ancestor=IMAGE_NAME | xargs docker stop

La opción -q muestra solo el ID del contenedor. Gracias al maravilloso comando xargs, estos ID de contenedores se canalizan a la parada de la ventana acoplable como argumento.

4. Detener todos los contenedores docker en ejecución

Es posible que se enfrente a una situación en la que deba detener todos los contenedores en funcionamiento. Por ejemplo, si desea eliminar todos los contenedores en Docker, debe detenerlos de antemano.

Para hacer eso, puedes usar algo similar a lo que viste en la sección anterior. Simplemente elimine la parte de la imagen.

docker ps -q | xargs docker stop

5. Detener un contenedor con gracia

Para ser honesto, la ventana acoplable detiene un contenedor con gracia de forma predeterminada. Cuando usa el comando docker stop, le da al contenedor 10 segundos antes de matarlo a la fuerza.

No significa que siempre se necesiten 10 segundos para detener un contenedor. Es solo que si el contenedor está ejecutando algunos procesos, tiene 10 segundos para detener el proceso y salir.

El comando de parada de Docker primero envía el comando SIGTERM. Si el contenedor se detiene en este período, envía el comando SIGKILL. Un proceso puede ignorar el SIGTERM pero SIGKILL matará el proceso inmediatamente.

Espero que sepas la diferencia entre SIGTERM y SIGKILL.

¿Qué es SIGTERM? ¿Cuál es la diferencia entre SIGKILL y SIGTERM? Tanto SIGTERM como SIGKILL se utilizan para eliminar un proceso en Linux. Pero debería preferir usar SIGTERM. ¡Este es el por qué! Manual de LinuxAbhishek Prakash

Puede cambiar este período de gracia de 10 segundos con la opción -t. Suponga que desea esperar 30 segundos antes de detener el contenedor:

docker stop -t 30 container_name_or_id

Al final…

Creo que toda esta información cubre muy bien el tema. Sabes muchas cosas sobre cómo detener un contenedor docker.

Estén atentos para obtener más consejos y tutoriales de Docker. Si tiene preguntas o sugerencias, hágamelo saber en la sección de comentarios.


Docker
  1. Cómo usar Docker Compose

  2. Cómo conectar contenedores Docker

  3. Cómo pasar variables de entorno a contenedores Docker

  4. Cómo listar contenedores Docker

  5. Cómo eliminar todos los contenedores de Docker

Cómo ejecutar contenedores Docker

Cómo eliminar contenedores Docker

Cómo nombrar o renombrar contenedores Docker

Cómo gestionar contenedores Docker

Cómo listar/iniciar/detener/eliminar contenedores docker

Cómo configurar espacios de nombres de red en contenedores Docker