En la guía anterior aprendiste a instalar Docker y a crear un contenedor en base a la imagen oficial de Nginx. Sin embargo, este se detendrá al reiniciar el sistema o el servicio ya que no indicamos que continuara corriendo luego de esos eventos. Para solucionarlo, en este artículo aprenderás cómo administrar contenedores con Docker en Ubuntu 20.04. Esto incluye iniciarlos, mantenerlos en ejecución, actualizarlos, detenerlos y finalmente eliminarlos.
Requisitos previos
- Completar los pasos detallados en Instalar Docker y crear un contenedor en Ubuntu 20.04.
Acceder a la ayuda de Docker
Para empezar, ejecuta el siguiente comando desde la terminal:
sudo docker help
Como podrás observar, el resultado muestra dos secciones que usaremos en esta guía. La primera de ellas tiene como título Management Commands y la segunda Commands a secas. Para ver más información o las opciones disponibles sobre un comando específico (rename
, por ejemplo) puedes utilizar --help
:
sudo docker rename --help
La imagen de arriba muestra dos datos de interés:
- La sintaxis del comando. En este caso, para renombrar un contenedor existente debemos emplear
docker rename
seguido del nombre actual del contenedor (o su ID) y del nuevo nombre. - El propósito del comando.
Debido a que es imposible que recordemos todos los comandos y opciones disponibles, utilizar --help
a menudo será invaluable para nuestras tareas.
Otra forma de acceder a la ayuda consiste en usar docker container
o docker image
seguido de --help
. Este método puede resultar más útil porque mostrará las acciones disponibles para contenedores por un lado y para imágenes por el otro.
Iniciar y detener contenedores
Como primer paso, veamos la lista de los contenedores existentes:
sudo docker container ls -a
Este es un ejemplo de un comando administrativo ya que docker
precede la palabra container
. Esto indica que la acción que vamos a realizar aplica a un contenedor. Finalmente, ls -a
nos resultará conocido y nos dará una idea de lo que vamos a hacer. En otras palabras, cuando docker container
aparece seguido de ls -a
, podremos ver la lista completa de contenedores (sea que estén en ejecución o no):
Como observamos arriba, donweb se detuvo hace 15 segundos. Para iniciarlo nuevamente podemos recurrir a cualquiera de las dos alternativas que aparecen a continuación:
sudo docker container start donweb
sudo docker start donweb
Si bien los dos comandos son equivalentes, muchas personas prefieren el primer por ser más explícito. Luego de escribirlo y presionar Enter podemos ver que el contenedor está en ejecución:
Ya que estamos, podemos indicar que de ahora en más donweb levante automáticamente junto con el sistema o tras un reinicio del servicio:
sudo docker container update --restart=always donweb
Idealmente, la opción --restart=always
debe aparecer en el comando de creación del contenedor. Dicho de otra forma, podríamos haber creado donweb con
sudo docker container run --name=donweb --publish 8080:80 --detach --restart=always nginx
en la guía anterior.
Por último, podemos cambiar start
por stop
para detener el contenedor:
Tengamos en cuenta que la política que establecimos hará que donweb arranque automáticamente luego de reiniciar el sistema o el servicio de Docker.
Eliminar contenedores e imágenes
A fin de evitar que acumulemos contenedores e imágenes sin necesidad, podemos eliminarlos. Antes de proceder hay algunas cosas que debemos saber no son posibles:
- Eliminar contenedores activos (hay que detenerlos primero).
- Borrar imágenes que estén siendo utilizadas en un contenedor existente. De esto se desprende que hay que remover el contenedor previamente.
Con esos puntos en mente, eliminemos donweb y luego la imagen de nginx sobre la que se basa:
sudo docker container stop donweb
sudo docker container rm donweb
sudo docker image rm nginx
Después de eliminar el contenedor y la imagen podemos comprobar que ya no aparecen en el listado.
Conclusión
En esta guía aprendiste cómo administrar contenedores con Docker en Ubuntu 20.04. Esto te permitirá iniciar un contenedor, detenerlo, actualizarlo, mantenerlo en ejecución y a eliminarlo. Además, saber emplear la ayuda de Docker con la opción --help
te será útil para realizar cualquier operación que necesites.