馃敟 CICLO DE VIDA DE CONTENEDORES DOCKER: OPTIMIZACI脫N Y MANTENIMIENTO

Ciclo de vida de contenedores Docker: Optimizaci贸n y mantenimiento

驴C贸mo es el ciclo de vida de los contenedores en Docker?

Ya hemos visto como ejecutar un contenedor, ahora exploraremos el ciclo de vida de los contenedores.

驴C贸mo listar los contenedores en ejecuci贸n en Docker?

Para listar los contenedores en ejecuci贸n en Docker utilizamos:

docker container ls

La salida se ve algo as铆:

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

驴C贸mo listar los contenedores de Docker que han sido ejecutados recientemente?

Si por el contrario lo que deseamos es listar los contenedores que hayan sido ejecutados en Docker recientemente utilizamos:

docker container ls -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
d9b47a992ed4        946a0547927b        "/bin/bash"         37 minutes ago      Exited (0) 37 minutes ago                       python-container

Como vemos en el anterior ejemplo, el contenedor fue creado hace 37 minutos, y cerrado en un momento similar.

驴C贸mo ejecutar y entrar al sistema operativo de un contenedor de Docker?

Para ejecutar un contenedor de Docker y entrar dentro de este vamos a ejecutar nuestro contenedor con la imagen ubuntu:16.01 y entrar dentro de este:

docker container run -it ubuntu:16.04

Abrimos otra terminal en una nueva tab y listamos los contenedores.

docker container ls

La salida se ver谩 algo as铆:

CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
8e642e0826c1        ubuntu:16.04        "/bin/bash"         About a minute ago   Up About a minute                       sharp_volhard

驴Qu茅 es el Moby Project?

En la 煤ltima columna mostrada en el listad de los contenedores aparecen nombres 煤nicos aleatorios que se le van dando a los contenedores.

Los nombres aleatorios provienen del Proyecto Moby (Moby Project). Este proyecto mantiene una relaci贸n estrecha con Docker. Dentro de este se encuentra un modulo para la generaci贸n de nombres aleatorios.

Ahora abandonamos nuestro contenedor.

exit

Si volvemos a listar los contenedores en ejecuci贸n docker container list, nos daremos cuenta que ya no aparece nuestro contenedor en la lista, y eso se debe a que hemos terminado su ejecuci贸n desde el momento en que salimos de este mediante exit. Sin embargo recordamos que podemos listar los contenedores que se han cerrado recientemente mediante docker container list -a.

驴C贸mo es el ciclo de vida de los contenedores?

Cuando ejecutamos el comando docker container run -it ubuntu:16.04 se crea una instancia de la imagen que hemos invocado (en este caso ubuntu:16:04) y se ejecuta en un nuevo contenedor, en este momento el contenedor se encuentra en estado de arranque.

Cuando se arranca el contenedor este se encuentra en estado de ejecuci贸n, por lo que realiza las tareas que requiere e incluso podemos interactuar con el.

Apenas abandonamos el contenedor nos dimos cuenta que este contenedor cerro su ejecuci贸n, pues ya no aparece al listar los contenedores en ejecuci贸n, en este punto el contenedor de Docker se encuentra en estado detenido.

驴C贸mo volver a arrancar el contenedor?

Si lo que deseamos es volver a arrancar el mismo contenedor sin tener que generar una nueva instancia, utilizamos el comando:

docker container ls -a

Veremos la lista reciente:

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
8e642e0826c1        ubuntu:16.04        "/bin/bash"         15 minutes ago      Exited (0) 9 minutes ago                        sharp_volhard
d9b47a992ed4        946a0547927b        "/bin/bash"         56 minutes ago      Exited (0) 56 minutes ago                       python-container

驴C贸mo ejecutar nuevamente un contenedor Docker que ha sido cerrado?

Para arrancar nuevamente el contenedor podemos utilizar su nombre (NAMES) o su identificador (CONTAINER ID).

docker container start 8e642e0826c1

No se requiere utilizar el nombre completo del identificador, basta con ingresar los primeros caracteres 煤nicos.

驴C贸mo entrar al contenedor que se encuentra en ejecuci贸n?

Para acceder al contenedor que se encuentra en ejecuci贸n podemos utilizar el comando attach.

docker attach 8e642e0826c1

Dentro podemos utilizar el comando ls y este nos mostrar谩 el contenido del sistema de archivos de Ubuntu Linux.

Para salir basta utilizar nuevamente exit, esto cerrar谩 la ejecuci贸n del contenedor y volver谩 a desaparecer de la lista de contenedores en ejecuci贸n.