Ciclo de vida del contenedor docker


Aprenderás el ciclo de vida del contenedor en docker y los comandos básicos para poder ejecutar acciones sobre un contenedor

oscar Escrito por oscar 10 June 2020 6192 0

Acerca del proyecto

En este post vamos a ver el ciclo de vida del contenedor docker y las instrucciones básicas que necesitamos para poder ejecutar acciones en un contenedor, estas instrucciones normalmente son utilizadas para todo el ciclo de vida de un contenedor y básicamente nos permiten realizar diferentes acciones para los diferentes estados que puede manejar los contenedores como lo pueden ser crear, suspender, pausar, entre otros. Las siguientes instrucciones que vamos a ver solamente se pueden ejecutar sobre un contenedor.

Conocimiento previo

Para realizar este proyecto se requiere conocimiento previo de los siguientes temas, si aun no has trabajado con lo que se menciona en la siguiente tabla, allí están los links a los post para que puedas dar un repaso adicional o puedas recordar el conocimiento necesario para poder realizar este proyecto.

Proyecto Descripción
Introducción docker Iniciamos con docker, donde conoceremos los temas que vamos a trabajar en este curso, aprenderemos a usar este gestor de contenedores con todas sus funcionalidades, ademas realizaremos ejercicios prácticos para reforzar el conocimiento aprendido.
¿Qué es docker? ¿Qué es docker?, es una plataforma que permite crear e implementar aplicaciones rápidamente. En este post aprenderás a detalle la definición, sus características y la diferencia con las tecnologías de aplicaciones tradicionales.
¿Qué es un contenedor? ¿Qué es un contenedor de docker?, lo podemos definir como una forma de limitar los recursos para una aplicación, donde solo va a contener sus librerías, configuraciones, entre otros. En este post explicamos a detalle los contenedores.
¿Qué es una imagen en docker? ¿Qué es una imagen en docker?, es un archivo compuesto por múltiples capas, que se utiliza para ejecutar código en un contenedor de docker. En este post aprenderás la definición y como usar las imagenes para crear contenedores.
Docker hola mundo Empezamos con el primer ejemplo creando contenedores en docker, vamos a explicar la instrucción para descargar la primera imagen y poder ejecutar un servidor en un contenedor, adicionalmente explicaremos algunos comandos para gestionar las imágenes y manipular los contenedores.

Ciclo de vida del contenedor docker

Haciendo foco particularmente en el contenedor, podemos mencionar que los diferentes estados que este puede manejar son Created, Running, Stopped, Paused, Killed.

Visto gráficamente estos son los estados con las transiciones correspondientes a cada comando que se puede ejecutar sobre un contenedor.[1]

Ciclo de vida del contenedor docker
Ciclo de vida del contenedor docker

Comandos ciclo de vida

docker run

El comando docker run primero crea una capa de contenedor grabable sobre la imagen especificada y luego la inicia usando el comando especificado. Es decir, la ejecución de Docker es equivalente a la API /containers/create then /containers/(id)/start. Un contenedor detenido se puede reiniciar con todos sus cambios anteriores intactos usando Docker Start. Vea docker ps -a para ver una lista de todos los contenedores.[2]

Uso

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Opciones

El listado de las opciones se detalla en la tabla de la documentación oficial, allí encontrará la información de cada opción y su descripción.

Ejemplo

Al ejecutar docker run con las siguientes opciones, crea un contenedor y lo deja activo.

docker run -p 80:80 -d nginx
docker run
docker run

docker create

El comando docker create, crea una capa de contenedor grabable sobre la imagen especificada y la prepara para ejecutar con un comando especificado. La identificación del contenedor se imprime en STDOUT. Esto es similar a docker run -d excepto que el contenedor nunca se inicia. Luego puede usar el docker start para iniciar el contenedor en cualquier momento.

Esto es útil cuando desea crear una configuración de contenedor con anticipación para que esté lista, liego ejecutarla cuando la necesite. El estado inicial del nuevo contenedor es created.[3]

Uso

docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

Opciones

El listado de las opciones se detalla en la tabla de la documentación oficial, allí encontrará la información de cada opción y su descripción.

Ejemplo

Al ejecutar docker run con las siguientes opciones, crea un contenedor y lo deja creado sin iniciar.

docker create nginx -p 80:80
docker create
docker create

docker start

Iniciar uno o más contenedores detenidos.[4]

Uso

docker start [OPTIONS] CONTAINER [CONTAINER...]

Opciones

El listado de las opciones se detalla en la tabla de la documentación oficial, allí encontrará la información de cada opción y su descripción.

Ejemplo

Al ejecutar docker start con el identificador del contenedor, este lo inicia si esta detenido.

docker start ID_CONTENEDOR
docker start
docker start

docker restart

Resetea uno o mas contenedores.[5]

Uso

docker restart [OPTIONS] CONTAINER [CONTAINER...]

Opciones

El listado de las opciones se detalla en la tabla de la documentación oficial, allí encontrará la información de cada opción y su descripción.

Ejemplo

docker restart ID_CONTENEDOR
docker restart
docker restart

docker stop

Detener uno o más contenedores en ejecución.[6]

Uso

docker stop [OPTIONS] CONTAINER [CONTAINER...]

Opciones

El listado de las opciones se detalla en la tabla de la documentación oficial, allí encontrará la información de cada opción y su descripción.

Ejemplo

docker stop ID_CONTENEDOR
docker stop
docker stop

docker pause

El comando docker pause suspende todos los procesos en los contenedores especificados. En Linux, esto usa el congelador cgroup. Tradicionalmente, cuando se suspende un proceso, se utiliza la señal SIGSTOP, que se puede observar cuando el proceso se suspende. Con el congelador cgroup, el proceso no es consciente y no puede capturar, que se está suspendiendo, y posteriormente se reanuda. En Windows, solo se pueden pausar los contenedores de Hyper-V.[7]

Uso

docker pause CONTAINER [CONTAINER...]

Ejemplo

docker pause ID_CONTENEDOR
docker pause
docker pause

docker unpause

El comando docker unpause anula la suspensión de todos los procesos en los contenedores especificados. En Linux, hace esto usando el congelador cgroup.[8]

Uso

docker unpause CONTAINER [CONTAINER...]

Ejemplo

docker unpause ID_CONTENEDOR
docker unpause
docker unpause

docker kill

El subcomando docker kill mata uno o más contenedores. El proceso principal dentro del contenedor se envía señal SIGKILL (predeterminado), o la señal que se especifica con la opción --signal. Puede eliminar un contenedor utilizando la ID, el prefijo de identificación o el nombre del contenedor.[8]

Uso

docker kill [OPTIONS] CONTAINER [CONTAINER...]

Opciones

El listado de las opciones se detalla en la tabla de la documentación oficial, allí encontrará la información de cada opción y su descripción.

Ejemplo

docker kill ID_CONTENEDOR
docker kill
docker kill

docker rm

Retire uno o más contenedores.[9]

Uso

docker rm [OPTIONS] CONTAINER [CONTAINER...]

Opciones

El listado de las opciones se detalla en la tabla de la documentación oficial, allí encontrará la información de cada opción y su descripción.

Ejemplo

docker rm ID_CONTENEDOR
docker rm
docker rm

docker ps

Lista todos los contenedores.[10]

Uso

docker ps [OPTIONS] CONTAINER [CONTAINER...]

Opciones

El listado de las opciones se detalla en la tabla de la documentación oficial, allí encontrará la información de cada opción y su descripción.

Ejemplo

docker ps ID_CONTENEDOR
docker ps
docker ps

Referencias

[1] medium https://medium.com/@nagarwal/lifecycle-of-docker-container-d2da9f85959, Consultado Junio 2020

[2] docker-run https://docs.docker.com/engine/reference/commandline/run/, Consultado Junio 2020

[3] docker create https://docs.docker.com/engine/reference/commandline/create/, Consultado Junio 2020

[4] docker-start https://docs.docker.com/engine/reference/commandline/start/, Consultado Junio 2020

[5] docker-restart https://docs.docker.com/engine/reference/commandline/restart/, Consultado Junio 2020

[6] docker-stop https://docs.docker.com/engine/reference/commandline/stop/, Consultado Junio 2020

[7] docker-pause https://docs.docker.com/engine/reference/commandline/pause/, Consultado Junio 2020

[8] docker-kill https://docs.docker.com/engine/reference/commandline/kill/, Consultado Junio 2020

[9] docker-rm https://docs.docker.com/engine/reference/commandline/rm/, Consultado Junio 2020

[10] docker-ps https://docs.docker.com/engine/reference/commandline/ps/, Consultado Junio 2020


Comentario

Debe aceptar antes de enviar