Estado de los contenedores en Docker
Hacía tiempo que no volvía a pilotar sobre las carreteras de Docker, así que aquí estamos de nuevo. Seguramente te habrás dado cuenta que los contenedores cuando fallan, esto es, no están disponibles, puede ser por diferentes motivos. Intentaremos explicar en que consisten estos estados.
Estado de los contenedores en Docker
Los contenedores cuando están funcionando sin problemas nos indicará, que llevan UP tanto tiempo. En cambio, si no están disponibles nos mostrarám uno de estos estados: exited, unhealthy, dead o create.
¿Cómo podemos ver esta información? Fácil, solo hemos de utilizar el comando docker ps
, que nos mostrará una lista similar a esta con los contenedores que tengamos disponibles:
root@servubuntu01:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 32914ef36135 ugeek/webdav:amd64 "/bin/sh -c '/entryp…" 9 months ago Up 2 weeks 0.0.0.0:8085->80/tcp webdav 0595f0fdf591 nextcloud "/entrypoint.sh apac…" 9 months ago Up 2 weeks 0.0.0.0:8084->80/tcp nextcloud_app_1 35b5e2b70fdf mariadb "docker-entrypoint.s…" 9 months ago Up 2 weeks 3306/tcp nextcloud_db_1 4201e2852e00 redis "docker-entrypoint.s…" 9 months ago Up 2 weeks 6379/tcp nextcloud_redis_1
En la columna «STATUS» observamos su estado. En esta vista todos los contenedores están disponibles, si queremos también ver los que no están disponibles, escribimos:docker ps -a
, con el resultado:
root@servubuntu01:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 15028dd6493e jitsi/jvb "/init" 4 months ago Exited (0) 5 weeks ago dockerjitsimeet_jvb_1 f2d9cc97deb8 jitsi/jicofo "/init" 4 months ago Exited (0) 5 weeks ago dockerjitsimeet_jicofo_1 d2c8a4dc2cd3 jitsi/prosody "/init" 4 months ago Exited (0) 5 weeks ago dockerjitsimeet_prosody_1 d6dbf6f616c0 jitsi/web "/init" 4 months ago Exited (0) 5 weeks ago dockerjitsimeet_web_1 0a5903c2b25f wordpress "docker-entrypoint.s…" 6 months ago Exited (0) 3 months ago wordpress_wordpress_1 2460b583428a mariadb "docker-entrypoint.s…" 6 months ago Exited (0) 3 months ago wordpress_mariadb_1 32914ef36135 ugeek/webdav:amd64 "/bin/sh -c '/entryp…" 9 months ago Up 2 weeks 0.0.0.0:8085->80/tcp webdav 0595f0fdf591 nextcloud "/entrypoint.sh apac…" 9 months ago Up 2 weeks 0.0.0.0:8084->80/tcp nextcloud_app_1 35b5e2b70fdf mariadb "docker-entrypoint.s…" 9 months ago Up 2 weeks 3306/tcp nextcloud_db_1 4201e2852e00 redis "docker-entrypoint.s…" 9 months ago Up 2 weeks 6379/tcp nextcloud_redis_1 6878623e79e4 telegraf:latest "/entrypoint.sh tele…" 9 months ago Exited (0) 4 months ago telegraf 686e93009c49 grafana/grafana:latest "/run.sh" 9 months ago Exited (0) 4 months ago grafana 16f638dd7fed influxdb:latest "/entrypoint.sh infl…" 9 months ago Exited (0) 4 months ago influxdb
Aquí también podemos ver los contenedores que están en estado exited
, por lo que no están disponibles, simplificando digamos que están apagados. Pero hay otros estados, como hemos indicado antes, pasemos al detalle.
- Created: Esto significa que el contenedor se esta creando. Depende del caso puede que este quede en un bucle, intentando crearse «in eternum«
- Restarting: El contenedor se está reiniciando.
- Running: El contenedor está funcionando.
- Removing: El contenedor se esta elimiando.
- Paused: El contenedor se encuentra en estado pausado.
- Unhealthy: Si una sola ejecución de un comando lleva más tiempo que el tiempo de espera especificado, entonces se considerará en ese estado. Tras intentar la ejecución en diferentes ocasiones.
- Exited: El proceso principal ha indicado «exit», por lo que este esta «apagado»
- Dead: Los contenedores están en un estado difunto, generalmente debido a problemas para acceder a su almacenamiento subyacente
También podemos filtrar únicamente los contenedores que tienen un estado diferente a «Running» o «UP«, por ejemplo:
sudo docker ps -a | egrep "unhealthy|Created|Dead"
Si queremos saber más e indagar porque un contenedor no está funcionando correctamente, podemos utilizar docker logs -contenedor-
, o para saber como esta montado docker inspect -contenedor-
Al final cada maestrillo tiene su librillo, como se suele decir.
No es la primera vez que hablamos de Docker, quizás también te interese:
Docker: 10 comandos imprescindibles