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 docker container detener el comando 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 la parada de la ventana acoplable.

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 el contenedor docker

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
  • Detenga todos los contenedores docker en ejecución a la vez
  • Deteniendo con gracia 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 el docker ps mando. 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 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 o 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. Detenga 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. Detenga todos los contenedores asociados con una imagen

Hasta ahora, lo que vio detener contenedores al mencionar 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 de la ventana 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. Detenga 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. Para example 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 de parada de la ventana acoplable, le da al contenedor 10 segundos antes de matarlo por la fuerza.

No quiere decir 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.

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
                      
                    

En el 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.

Related Posts