Introducción
¡Bienvenido al reto "Ejecuta tu primer contenedor"! Ya has aprendido cómo ejecutar el contenedor hello-world. Ahora, vamos a dar un paso más allá y ejecutar un contenedor diferente. En este reto, utilizarás tus habilidades con Docker para iniciar la imagen docker/getting-started, la cual lanza un pequeño servidor web dentro de un contenedor.
Ejecutar un nuevo contenedor
Tareas
Tu tarea es sencilla:
- Ejecuta un contenedor de Docker basado en la imagen
docker/getting-started.
Requisitos
Para completar este reto, debes:
- Utilizar el comando
docker runpara iniciar el contenedor. - Usar la imagen
docker/getting-started, la cual ya ha sido descargada previamente para ti. - Ejecutar el comando en el directorio
~/project.
Ejemplo
Cuando ejecutas el contenedor correctamente, Docker lo inicia en primer plano, por lo que tu terminal permanece conectada a los registros (logs) del contenedor. Dichos registros provienen del servidor web Nginx que se encuentra dentro de docker/getting-started.
No te preocupes si ves un mensaje de advertencia indicando que el directorio /docker-entrypoint.d/ no está vacío.
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2024/10/29 09:26:17 [notice] 1#1: using the "epoll" event method
2024/10/29 09:26:17 [notice] 1#1: nginx/1.23.3
2024/10/29 09:26:17 [notice] 1#1: built by gcc 12.2.1 20220924 (Alpine 12.2.1_git20220924-r4)
2024/10/29 09:26:17 [notice] 1#1: OS: Linux 5.15.0-56-generic
2024/10/29 09:26:17 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2024/10/29 09:26:17 [notice] 1#1: start worker processes
2024/10/29 09:26:17 [notice] 1#1: start worker process 31
2024/10/29 09:26:17 [notice] 1#1: start worker process 32
Puedes abrir una nueva ventana de terminal para verificar que el contenedor se está ejecutando mediante el comando docker ps.
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f3f3b3b3b3b3 docker/getting-started "/docker-entrypoint.…" 1 minute ago Up 1 minute 80/tcp festive_mendel
Nota: Mantén la primera terminal abierta después de ejecutar
docker run docker/getting-started. Si presionasCtrl+Co cierras esa terminal, el contenedor se detendrá. Abre una segunda terminal para ejecutardocker ps, o utilizadocker run -d docker/getting-startedsi deseas que el contenedor se ejecute en segundo plano.
Resumen
En este reto, has ampliado tus habilidades con Docker ejecutando un nuevo contenedor. Has utilizado el comando docker run para iniciar la imagen docker/getting-started, la cual lanza un servidor web dentro de un contenedor y muestra sus registros de inicio en la terminal. También has observado que un contenedor iniciado en primer plano mantiene la terminal ocupada hasta que lo detienes. Este ejercicio refuerza los conceptos básicos sobre cómo iniciar contenedores y verificar si están en ejecución mediante comandos de Docker como docker ps.



