En un guión, necesito verificar:
a) ¿Está funcionando el motor de la ventana acoplable?
b) Dado un nombre de contenedor, ¿se está ejecutando ese contenedor de Docker?
[la redacción inicial de esta pregunta era ambigua, y algunas personas la interpretaban como "comprobar el motor de la ventana acoplable" y otras como "comprobar el contenedor de la ventana acoplable"]
docker attach containerName
docker ps
docker ps
----- Este comando solo mostrará contenedoresRespuestas:
Si está buscando un contenedor específico, puede ejecutar:
if [ "$( docker container inspect -f '{{.State.Running}}' $container_name )" == "true" ]; then ...
Para evitar problemas con un contenedor que se encuentra en un bucle de bloqueo y que se reinicia constantemente para que no muestre que está activo, lo anterior se puede mejorar marcando el
Status
campo:if [ "$( docker container inspect -f '{{.State.Status}}' $container_name )" == "running" ]; then ...
Si desea saber si dockerd se está ejecutando solo en la máquina local y tiene systemd instalado, puede ejecutar:
También puede conectarse a la ventana acoplable con
docker info
odocker version
y se producirán un error si el demonio no está disponible.fuente
docker inspect …
interior de unaif
declaración de un script bash?if [ $(docker inspect -f '{{.State.Running}}' $container_name) = "true" ]; then echo yup; else echo nope; fi
docker inspect -f '{{.State.Restarting}}' $container_name
desde que inicio mi contenedor con una política de reinicio, aunque aquí "verdadero" es lo que desea evitar.if
declaración anterior , cuando el contenedor no se esté ejecutando. Esto esconde el vómito no deseado por el caso falso:if [ "$(docker inspect -f '{{.State.Running}}' ${container_name} 2>/dev/null)" = "true" ]; then echo yup; else echo nope; fi
Terminé usando
para verificar con un script bash si el motor de Docker se está ejecutando.
fuente
docker info > /dev/null 2>&1
si no necesita la salidapuede verificar el estado de la ventana acoplable usando:
systemctl is-active docker
puedes usarlo como:
➜ ~ if [ "$(systemctl is-active docker)" = "active" ]; then echo "is alive :)" ; fi is alive :) ➜ ~ sudo systemctl stop docker ➜ ~ if [ "$(systemctl is-active docker)" = "active" ]; then echo "is alive :)" ; fi * empty response *
fuente
docker ps --filter name=pattern
, luego puede formatear la salida para verificar solo el estado agregando esta bandera:--format {{.Status}}
Enumere todos los contenedores:
docker container ls -a
ls
= lista-a
= todoVerifique la columna "estado"
fuente
Para usuarios de OS X (Mojave 10.14.3)
Esto es lo que uso en mi script Bash para probar si Docker se está ejecutando o no
# Check if docker is running if ! docker info >/dev/null 2>&1; then echo "Docker does not seem to be running, run it first and retry" exit 1 fi
fuente
if [[ $? -ne 0 ]]
antipatrón.Cualquier comando de la ventana acoplable (excepto
docker -v
), comodocker ps
Si Docker se está ejecutando, obtendrá una respuesta válida; de lo contrario, recibirá un mensaje que incluye "¿Está funcionando el demonio de la ventana acoplable?"También puede consultar su administrador de tareas.
fuente
A veces no conoce el nombre completo del contenedor, en este caso esto es lo que funcionó para mí:
if docker ps | grep -q keyword then echo "Running!" else echo "Not running!" exit 1 fi
Enumeramos todos los procesos de contenedor en ejecución (
docker ps -a
también nos mostraría que no están en ejecución, pero eso no es lo que necesitaba), buscamos una palabra específica (grep
parte) y simplemente fallamos si no encontramos al menos un contenedor en ejecución cuyo nombre contenga nuestro palabra clave.fuente
Puede verificar con este comando
systemctl status docker
que mostrará el estado de la ventana acoplable. Si desea iniciar se puede utilizarsystemctl start docker
en lugar desystemctl
usted puede probar también conservice
,service docker status
yservice docker start
respectivamente.fuente
systemd
como su inicio.systemctl status docker
mostrar correctamente si el servicio Docker se está ejecutando. Gracias.También puede verificar si un contenedor Docker en particular se está ejecutando o no usando el siguiente comando:
docker inspect postgres | grep "Running"
Este comando verificará si, por ejemplo, mi contenedor de postgres se está ejecutando o no y devolverá la salida como "En ejecución": verdadero
Espero que esto ayude.
fuente
Correr:
Si Docker se está ejecutando , verá:
Si Docker no se está ejecutando , verá:
fuente
Si el objetivo subyacente es "¿Cómo puedo iniciar un contenedor cuando se inicia Docker?"
Podemos usar la política de reinicio de Docker
Para agregar una política de reinicio a un contenedor existente:
Docker: agregue una política de reinicio a un contenedor que ya se creó
Ejemplo:
fuente
en una Mac, es posible que vea la imagen:
si hace clic con el botón derecho en el icono de la ventana acoplable, verá:
alternativamente:
docker ps
y
docker run hello-world
fuente
Cómo verifico SSH.Run:
Si la respuesta: no se pudo obtener la conexión D-Bus: operación no permitida
Es un contenedor Docker o WSL.
fuente
docker ps -a
Puede ver todos los contenedores de la ventana acoplable, ya sea que estén vivos o muertos.
fuente
Ejecute este comando en la terminal:
$docker ps
Si Docker no se está ejecutando, recibirá este mensaje:
fuente