Introducción
En este desafío, vamos a jugar con imágenes de Docker. Una imagen de contenedor de Docker es un paquete de software ligero, autónomo y ejecutable que contiene todo lo necesario para ejecutar una aplicación: código, entorno de ejecución, herramientas del sistema, bibliotecas del sistema y configuraciones.
Cambiar la imagen de Docker
Una imagen de Docker contiene un nombre de imagen y una etiqueta de imagen, donde el nombre de imagen comprende la dirección del repositorio y el identificador de la imagen. En esta subsección, vamos a subir una imagen de Docker creada por alguien más a nuestro repositorio.
Objetivo
Tu objetivo es subir la imagen pública ubuntu en dockerhub a tu repositorio privado.
Ejemplo de resultado
Aquí hay un ejemplo de lo que deberías poder lograr al final de este desafío:
- Registrarte en
dockerhube iniciar sesión.

- Descargar la imagen
ubuntu:22.10desde el docker hub a nuestro servidor local.

- Cambiar la imagen
ubuntu:22.10a nuestra dirección de repositorio.

- Iniciar sesión en el docker hub.

- Subir la imagen al repositorio remoto.

Requisitos
Para completar este desafío, necesitarás:
- Instalar el motor de Docker.
- Tener algunos conocimientos de la línea de comandos de Docker.
- Existir una imagen de Docker que necesita ser actualizada
Construir una imagen web
Normalmente usamos nginx para ejecutar aplicaciones estáticas como sitios web. En esta sección, construiremos nuestra imagen web.
Objetivo
Tu objetivo es crear una imagen de contenedor de Docker y empaquetar una aplicación web simple en ella, luego usar esa imagen para iniciar el contenedor y hacerlo accesible correctamente.
Ejemplo de resultado
Aquí hay un ejemplo de lo que deberías poder lograr al final de este desafío:
- Crear un nuevo archivo llamado
index.htmlen el directorio/home/labex/Codecon el contenidohello labex.

- Crear un nuevo archivo llamado
Dockerfilecon el siguiente contenido

- Construir tu imagen web con el formato
tu_id_de_dockerhub/web:1.1.0.

- Subir la imagen web creada a
dockerhub.

- Iniciar un contenedor llamado
webcontu_id_de_dockerhub/web:1.1.0, y también necesitamos mapear el puerto80al host.

- Usar el comando
curlpara visitarhttp://127.0.0.1y comprobar que la salida eshello labex.

Requisitos
Para completar este desafío, necesitarás:
- Construir con
Dockerfile - Especificar la imagen base como
Nginx:latest - Exponer el puerto
80en elDockerfileusando el comando EXPOSE - Después de que la construcción esté completa, asegúrate de que el contenedor pueda ejecutarse correctamente y responder a solicitudes HTTP
Construcción de imagen multi-etapa
La creación de una imagen de contenedor a menudo implica dos pasos:
- Compilar la construcción de la aplicación.
- Crear la imagen de la aplicación.
En esta sección, se combinarán estos dos pasos en un único archivo Docker para lograr una construcción multi-etapa.
Para completar esta sección del desafío, hemos preparado un proyecto Hello World en https://github.com/joker-bai/go-hello-world.git.
Objetivo
Tu objetivo es utilizar una construcción multi-etapa para crear una imagen de contenedor y usar esa imagen para iniciar un contenedor y que sea accesible correctamente.
Ejemplo de resultado
Aquí hay un ejemplo de lo que deberías poder lograr al final de este desafío:
Crear un directorio
hello-worlden el directorio/home/labex/Code.
Crear un
Dockerfileen este directorio con el siguiente contenido
Construir la imagen de Docker con el formato
tu_id_de_dockerhub/go-hello-world:1.1.0.
Subir la imagen al docker hub.

Iniciar un contenedor llamado
go-hello-worldy exponer el puerto8080.
Visitar
http://127.0.0.1:8080para comprobar si está bien.
Requisitos
Para completar este desafío, necesitarás:
- Construir con
Dockerfile - Después de que la construcción esté completa, asegúrate de que el contenedor pueda ejecutarse correctamente y responder a solicitudes HTTP
Resumen
Felicitaciones por la finalización de todos los elementos de este desafío. Ahora tienes la flexibilidad para crear y administrar imágenes de aplicaciones.



