Saltar al contenido principal

Gestión de contenedores (stop, rm...)

En este episodio, vamos a ver cómo gestionar los contenedores. Aprenderemos a pararlos, eliminarlos, reiniciarlos... entre otras acciones, profundizando más en las opciones que nos ofrece Docker.

En el episodio anterior, vimos cómo ejecutar un contenedor con el comando docker run, ahora toca ver como pararlos, eliminarlos, reiniciarlos, etc. Gestionarlos en definitiva.

Dentro vídeo:

Gestión de contenedores

Conectarse a un contenedor

En el capítulo anterior, vimos el comando attach que nos permitía conectarnos a un contenedor en ejecución. Pero este comando vuelve al proceso principal del contenedor.

Por razones de depuración, a veces necesitamos conectarnos a un contenedor en ejecución y ejecutar un comando en él que no sea el principal. Para ello, podemos utilizar el comando exec.

Por ejemplo, si quisieramos listar el contenido de un contenedor en ejecución, podríamos hacerlo con el siguiente comando:

docker exec <id_contenedor> ls

Lo más común, ejecutar el entorno de bash, sh o zsh en un contenedor y así obtener un terminal interactivo. Para poder permitir hay que utilizar los parámtros i, interactive y t, de terminal. Por ejemplo:

docker exec -it <id_contenedor> bash

Parar un contenedor

Podemos detener un contenedor en ejecución con el comando docker stop.

Deberíamos saber el ID o el nombre del contenedor que queremos parar. Recuerda que podemos ver los contenedores que tenemos en ejecución con el comando docker ps.

Por ejemplo, si queremos parar el contenedor vigorous_noether, podríamos hacerlo con el siguiente comando:

docker stop vigorous_noether

También podríamos parar el contenedor por ID:

docker stop e9267a9edf3d

O, incluso podríamos pararlo solo especificando las primeras letras del ID:

docker stop e92

Este truco del id parcial se puede utilizar en la mayoría de los comandos de Docker.

Iniciar un contenedor

Podemos iniciar un contenedor que hemos parado con el comando docker start.

Recordemos que el comando run crearía un nuevo contenedor, mientras que el comando start iniciará un contenedor que ya ha sido creado previamente y que se encuentra parado.

Deberíamos saber el ID o el nombre del contenedor que queremos iniciar. Recuerda que podemos ver los contenedores que tenemos parados con el comando docker ps -a. Este nos mostrará todos los contenedores, tanto los que están en ejecución como los que están parados.

Otro truco para filtrar la salida del terminal, es complementar los comandos con grep. Por ejemplo, si buscamos un contenedor que utilice la imagen nginx, podríamos hacerlo con el siguiente comando:

docker ps -a | grep nginx

Una vez que tenemos localizado el contenedor que queremos inciiar, por ejemplo, el contenedor con nombre vigorous_noether, podríamos hacerlo con el siguiente comando:

docker start vigorous_noether

Reiniciar un contenedor

Podemos reiniciar un contenedor con el comando docker restart.

Reiniciar un contenedor es equivalente a pararlo y volver a iniciarlo. Es decir, es como hacer un docker stop seguido de un docker start.

Por ejemplo, si queremos reiniciar el contenedor vigorous_noether, podríamos hacerlo con el siguiente comando:

docker restart vigorous_noether

Eliminar un contenedor

Podemos eliminar un contenedor con el comando docker rm.

Y al igual que en los comandos anteriores, referenciaremos el contenedor por su ID o por su nombre. Por ejemplo:

docker rm vigorous_noether

Si hubiera algún problema al eliminar el contenedor, por ejemplo, se queda atascado, podríamos forzar la eliminación con la opción -f:

docker rm -f vigorous_noether

Prune de contenedores

Podemos eliminar todos los contenedores parados con el comando docker container prune.

Este comando eliminará todos los contenedores que estén parados. Es útil para limpiar el sistema de contenedores que ya no necesitamos.


Volver al índice