¿Qué es el modo independiente en el mundo de Docker? Leí este artículo Enlace , pero no explica exactamente qué significa el modo independiente.
Puede iniciar un contenedor Docker en modo independiente con una -d
opción. Entonces el contenedor se inicia y se ejecuta en segundo plano. Eso significa que inicia el contenedor y puede usar la consola después del inicio para otros comandos.
Lo opuesto al modo independiente es el modo de primer plano. Ese es el modo predeterminado, cuando -d
no se usa la opción. En este modo, la consola que está utilizando para ejecutar docker run
se adjuntará a la entrada, salida y error estándar. Eso significa que su consola está conectada al proceso del contenedor.
En modo independiente, puede seguir la salida estándar de su contenedor docker con docker logs -f <container_ID>
.
Prueba ambas opciones. Siempre uso el modo separado para ejecutar mis contenedores. Espero poder explicarlo un poco más claro.
docker logs -f [container_ID] > logs.txt
. Si no funciona, intente agregar el indicador '-it' al iniciar el contenedor de la ventana acoplable como lo sugiere @BMitch a continuación.La opción de desconectar en la línea de comando de la ventana acoplable indica que el cliente de la ventana acoplable (
docker
) hará una solicitud al servidor (dockerd
), y luego el cliente saldrá mientras esa solicitud continúa en el servidor. Parte de la confusión puede ser que la ventana acoplable parece un proceso único, donde en realidad es una aplicación cliente / servidor donde el cliente es solo una interfaz delgada en una API REST para enviar cada comando al servidor.Con a
docker container run --detach
, esto significa que se creará el contenedor, el servidor responderá con un ID de contenedor si tiene éxito y el contenedor continuará ejecutándose en el servidor mientras usted puede ejecutar otros comandos. Esto se usa a menudo para un servidor (por ejemplo, nginx) que desea iniciar en segundo plano mientras continúa ejecutando otros comandos. Tenga en cuenta que aún puede configurar un contenedor con las opciones--interactive
y-tty
(a menudo abreviadas-it
) y luego ejecutar adocker container attach
para conectarse a un contenedor que ya se esté ejecutando. (Tenga en cuenta que hasta que lo adjunte al contenedor que se ejecuta con-itd
, cualquier intento del contenedor de leer desde stdin se bloqueará, en lugar de ver un final de entrada que a menudo desencadena una salida inmediata si acaba de aprobar-d
).Si ejecuta sin la opción de desconexión, el cliente ejecutará inmediatamente una llamada de API adjunta después de que se cree el contenedor para que pueda ver la salida y, opcionalmente, proporcionar información al proceso en ejecución en el contenedor. Esto es útil si su contenedor está ejecutando algo interactivo (por ejemplo
/bin/bash
).Varios otros comandos permiten la opción de desconectar, incluido el
docker-compose up -d
que iniciará un proyecto completo y lo dejará ejecutándose en el servidor en segundo plano. También hay muchos de losdocker service
comandos que se desconectarán después de enviar el cambio al servidor para crear o actualizar el estado de destino de un servicio, o si no se desconecta, el cliente esperará hasta que el estado actual del servicio coincida con el estado de destino y puede ver el progreso del despliegue. Tenga en cuenta que con losdocker service
comandos, es posible que deba pasar--detach=false
para permanecer adjunto, el comportamiento ha cambiado durante el último año dependiendo de su versión.fuente
--detach-keys
)--interactive
y--tty
(también conocido como-it
) para que funcione.docker run: crea una instancia a partir de la imagen de la ventana acoplable como contenedor de la ventana acoplable. (si la imagen no está disponible localmente, se extrae de Docker Hub) ubuntu - Nombre de la imagen
14.04 - Etiqueta
-d, --detach - Modo de desconexión
-t, --tty - Asignar un pseudo-TTY
fuente