Conectarse a un contenedor en ejecución y observar su salida
En el paso anterior, iniciamos un contenedor en modo desacoplado. Aunque el contenedor ejecutó un comando simple y probablemente finalizó rápidamente, aún podemos conectarnos a él para ver su salida. El comando docker attach
permite conectarse a los flujos estándar de entrada, salida y error de un contenedor en ejecución o finalizado.
Primero, obtengamos el ID del contenedor que iniciamos en el paso anterior. Puedes usar el comando docker ps -a
y buscar el contenedor que ejecutó el comando echo
. Copia el ID del contenedor.
docker ps -a
Ahora, usa el comando docker attach
seguido del ID del contenedor para conectarte a él.
docker attach <container_id>
Reemplaza <container_id>
con el ID real de tu contenedor. Dado que el contenedor ejecutó un simple comando echo
y finalizó, es posible que no veas ninguna salida inmediatamente, o podrías ver el mensaje "Hello from detached container!" si la salida aún está en el buffer. El comando attach
te conectará a los flujos del contenedor. Como el contenedor ya completó su tarea, el comando attach
probablemente finalizará inmediatamente después de conectarse.
Para demostrar cómo conectarse a un contenedor que permanece en ejecución, iniciemos un nuevo contenedor desacoplado que ejecute un comando que lo mantenga activo durante algunos segundos. Usaremos nuevamente la imagen ubuntu
y ejecutaremos sleep 10
.
docker run -d ubuntu sleep 10
Obtén el ID de este nuevo contenedor usando docker ps
. Esta vez, el contenedor debería estar en estado Up
.
docker ps
Ahora, conéctate a este contenedor en ejecución usando su ID.
docker attach <new_container_id>
Reemplaza <new_container_id>
con el ID del contenedor que ejecuta sleep 10
. Estarás conectado a los flujos estándar del contenedor. Dado que el comando sleep
no produce salida, no verás nada. La terminal parecerá estar en espera. El contenedor se ejecutará durante 10 segundos y luego finalizará. Cuando el contenedor finalice, el comando attach
también terminará, devolviéndote al prompt de tu terminal.