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

Cómo verificar si el demonio Docker o un contenedor se está ejecutando

Docker utiliza una arquitectura basada en daemon donde la CLI se conecta a un proceso de larga duración que se ejecuta por separado en su máquina o en un host remoto. Los comandos CLI no funcionarán y, por lo general, sus contenedores se desconectarán si el daemon se detiene.

Aquí se explica cómo verificar si el demonio de Docker está activo para que pueda diagnosticar problemas con los contenedores y el docker dominio. Cuando el daemon no se está ejecutando, verá un mensaje de "no se puede conectar al daemon de Docker" cada vez que use docker CLI.

Revisando con Systemctl

Puede verificar el estado de Docker con systemctl en distribuciones que utilizan Systemd para la gestión de servicios. Esto cubre la mayoría de los sistemas operativos populares, incluidos Debian, Ubuntu, CentOS y Red Hat.

sudo systemctl status docker

Compruebe lo que se muestra en "Activo". Si ve active (running) en verde, el demonio Docker se está ejecutando y sus contenedores deberían estar activos.

Un estado activo de inactive indica que el servicio se ha detenido. Intente abrirlo ejecutando sudo systemctl start docker . El estado debería cambiar a active (running) después de que se inicie el demonio.

Si ve un estado de failed en rojo, el demonio no pudo iniciarse debido a un error. Debe revisar los registros de inicio del servicio que se muestran más adelante en systemctl salida de comando, ya que generalmente contienen sugerencias que le permiten averiguar qué salió mal.

Cuando no haya una resolución obvia disponible, inicie manualmente el daemon en modo de depuración para obtener más información sobre su rutina de inicio.

sudo dockerd --debug

Reiniciar su máquina host o reiniciar el servicio Docker con systemctl restart docker también puede ayudar a aliviar problemas transitorios.

Inspección de detalles del proceso

Otra forma de verificar si hay un demonio Docker en ejecución es inspeccionar su archivo de ID de proceso. El daemon escribe su ID de proceso en /var/run/docker.pid cada vez que se inicia. Cuando este archivo exista, Docker debería estar ejecutándose y listo para conexiones CLI.

cat /var/run/docker.pid

Puede usar esta técnica para crear scripts programáticos que verifiquen si el daemon está vivo. Leer el archivo te da la ID que puedes usar con herramientas como top para obtener más información sobre el proceso de Docker:

cat /var/run/docker.pid

# process id = 1000

top -p 1000

También puede obtener la identificación del proceso con el pidof dominio. Esto acepta un nombre de proceso y devuelve el primer ID coincidente:

pidof dockerd

# process id = 1000

# view information with top
top -p `pidof dockerd`

Hay un demonio Docker activo en su máquina si top coincide con un dockerd proceso. Esto puede ser más confiable que buscar docker.pid – si el demonio falla, docker.pid podría quedarse atrás después de que el proceso haya terminado.

Manejo de archivos de proceso atascados

El demonio se negará a reiniciarse cuando haya un archivo PID presente. Esto podría dejarlo atascado en un bucle de reinicio si el archivo está realmente huérfano de una ejecución anterior. Verás este mensaje cuando ejecutes dockerd :

failed to start daemon: pid file found, ensure docker is not running or delete /var/run/docker.pid

Usa pidof dockerd para asegurarse de que Docker realmente se detuvo. Continúe si el comando no emite ningún resultado, confirmando que no hay ningún proceso en ejecución.

Ejecute sudo rm /var/run/docker.pid para eliminar el antiguo archivo de ID de proceso. El demonio ahora debería iniciarse correctamente la próxima vez que ejecute dockerd o service docker start .

Los problemas de archivos PID se encuentran comúnmente cuando toma una instantánea de una máquina virtual y luego crea una nueva instancia a partir de la imagen. El archivo de proceso se incluirá en la instantánea, lo que hará que el demonio de Docker en la nueva máquina virtual crea que ya se está ejecutando.

Comprobación de contenedores individuales

Se accede al estado de los contenedores individuales a través de docker ps dominio. Esto emite una tabla que contiene los detalles de todos los contenedores que se están ejecutando actualmente.

docker ps

Combina el docker ps comando con grep para verificar fácilmente si un contenedor específico se está ejecutando por ID o nombre:

docker ps | grep my-container-name

Ahora la salida se filtrará para mostrar el contenedor que ha seleccionado. No habrá registros si el contenedor no se está ejecutando.

Los contenedores detenidos se muestran usando docker ps -a . Un contenedor detenido se puede iniciar con docker start comando:

docker start my-container

El contenedor luego se moverá al docker ps normal producción. Puede detenerlo nuevamente con docker stop my-container .

Conclusión

Tiene varias opciones para considerar cuando quiera saber si Docker se está ejecutando. Está el administrador de servicios de su sistema operativo, el docker.pid archivo y herramientas regulares de inspección de procesos como top y pidof .

Cuando se trata de contenedores individuales, docker ps proporciona la lista de todo lo que se está ejecutando actualmente en su host. Se puede obtener información más completa sobre el estado de cualquier contenedor con docker inspect container-name que proporciona detalles de configuración de red, volúmenes y etiquetas en formato JSON.


Docker
  1. Cómo ejecutar MySQL en un contenedor Docker

  2. Cómo ejecutar un comando en un contenedor Docker en ejecución

  3. Cómo asignar una IP estática a un contenedor Docker

  4. Cómo instalar Vim en un contenedor Docker

  5. Cómo cambiar la zona horaria de un contenedor Docker

Cómo ejecutar PHPMyAdmin en un contenedor Docker

Cómo ejecutar Grafana en un contenedor Docker

Cómo crear una imagen de Docker desde un contenedor en ejecución

Cómo crear volúmenes Docker en Windows de forma fácil

Cómo configurar un contenedor Apache Docker

Cómo ejecutar contenedores Docker