La corrección está integrada en el TP (Ver los recuadros verdes)
Los requisitos previos #
Debe tener una máquina con Docker instalado.
Despliegue #
En esta sección, desplegaremos nuestro primer contenedor Docker.
Encontrar y descargar la imagen
Vamos a desplegar un servidor web Apache en versión 2.4.62. Por lo tanto, necesitamos encontrar una imagen lista para usar para descargarla en nuestro servidor web Apache.
Debe ir a un registro de Docker. Como aún no tenemos un registro privado, iremos a un registro público, por ejemplo:
- Docker Hub: https://hub.docker.com/
- Quay.io: https://quay.io
RECORDATORIO: Dependiendo de las distribuciones, el servidor Apache se puede llamar httpd.
Entonces, en el caso de Docker Hub, esto nos da:docker pull httpd:2.4.62Desplegar el contenedor
Debe desplegar nuestro primer contenedor con las siguientes características:- Imagen: apache en versión 2.4.62
- Exposición de puerto: 83
- Nombre del contenedor: mon-premier-conteneur
Puede crear el contenedor con el comando a continuación:
Con estas explicaciones:docker run -dit --name mon-premier-conteneur -p 83:80 httpd:2.4.62- docker run -> comando para crear un contenedor
- -dit -> combinación de opciones que inician el contenedor en modo separado (d), interactivo (i) y asignan un pseudo-TTY. Atención, las opciones evolucionan con su necesidad, pero siempre vaya a lo simple (opciones predeterminadas)
- -p 83:80 -> exponer el puerto 83 en el host y 80 en el invitado (contenedor)
- httpd:2.4.62 -> Imagen utilizada
Verificación del estado del contenedor
Debe verificar el buen funcionamiento de su contenedor. Para esto, debe proporcionar los comandos de docker para las siguientes acciones:- Mostrar los contenedores iniciados
- Mostrar los contenedores iniciados y detenidos
- Mostrar únicamente el contenedor mon-premier-conteneur
- Mostrar los contenedores que tienen el Label AUTOR:ROUSSELTM
Puede hacer las acciones con los siguientes comandos:
docker psdocker ps -a
Este comando a través de '|' puede cubrir muchos casos, pero para hacer las cosas correctamente debe usar la opción -f/--filter. Le invito a leer los otros parámetros (Ver). Por lo tanto, esto nos dadocker ps -a | grep mon-premier-conteneur
Para mostrar los contenedores con las etiquetas no podemos usar el '|' porque nuestra salida de ps no muestra las etiquetas. Por lo tanto, estamos obligados a pasar por los filtrosdocker ps -f name=mon-premier-conteneurdocker ps --filter 'label=AUTOR=ROUSSELTM'Verificación del contenedor
Debe encontrar el comando para probar el buen funcionamiento del contenedor del servidor web.ATENCIÓN: un contenedor que está iniciado no es un contenedor que funciona. Debe verificar sus registros (logs) y sus salidas.
Puede realizar las acciones con los siguientes comandos:
Debe tener en la salida el texto 'It works!'$ curl http://localhost:83 -s
Optimización #
En esta sección, optimizaremos nuestro primer contenedor Docker.
Construir un segundo contenedor más ligero
Como se señaló durante las clases, debe usar las imágenes oficiales como prioridad y especialmente las más óptimas. Debe elegir otra imagen más optimizada en términos de tamaño.
Puede crear un contenedor más ligero con Alpine.
RECORDATORIO: Una buena práctica es utilizar las imágenes alpine en cuanto estén disponibles.
Entonces, en el caso de Docker Hub, esto nos da:docker run -dit --name mon-second-conteneur -p 84:80 httpd:2.4.62-alpineComparar el consumo de disco de los dos contenedores
Debe encontrar un comando que muestre únicamente los dos contenedores con su uso de disco, sabiendo que las dos imágenes tienen nombres que contienen 'mon-'
Puede hacerlo con el comando a continuación:
Con estas explicaciones:$ docker ps -f name=mon- -s CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE 410b6a032a0c httpd:2.4.62-alpine 'httpd-foreground' 19 seconds ago Up 17 seconds 0.0.0.0:84->80/tcp mon-second-conteneur 2B (virtual 62.9MB) 0865fe7c9e31 httpd:2.4.62 'httpd-foreground' 3 hours ago Up 3 hours 0.0.0.0:83->80/tcp mon-premier-conteneur 2B (virtual 148MB)- -s -> mostrar el uso de disco
Nivel de dificultad : ●●○○○ (2/5)
Glossaire de la formation
Microservicios
Arquitectura donde una aplicación se divide en varios servicios pequeños e independientes, a menudo desplegados en la nube.
Docker
Herramienta que permite virtualizar y empaquetar aplicaciones dentro de contenedores ligeros para un despliegue óptimo.Ejemplo de despliegue de un con...
Prometheus
Sistema de monitorización y alertas de código abierto, particularmente adaptado para la recopilación de métricas en entornos dinámicos (como Kubernete...
Kubernetes
Plataforma de código abierto de orquestación de contenedores que permite automatizar el despliegue, el escalado y la gestión de aplicaciones en conten...
CI/CD
Integración Continua y Despliegue Continuo. Prácticas DevOps destinadas a automatizar las pruebas y el despliegue de aplicaciones para entregar de for...
Terraform
Herramienta de Infraestructura como Código (IaC) que permite definir y aprovisionar recursos de infraestructura en la nube y on-premise a través de ar...
Métricas
Medidas numéricas recopiladas a intervalos regulares (ej: CPU, RAM, tiempo de respuesta) utilizadas para evaluar el estado de salud general de un sist...
DevOps
Cultura, movimiento y prácticas destinadas a unificar el desarrollo de software (Dev) y la administración de infraestructuras informáticas (Ops).
API Gateway
Pasarela que sirve de punto de entrada único para todas las solicitudes hacia arquitecturas de microservicios. Gestiona el enrutamiento, la seguridad ...
Arquitectura
Diseño global y estructural de un sistema informático, definiendo sus diferentes componentes, sus relaciones y los principios que guían su evolución.
Artefacto (Artifact)
Resultado final de un proceso de compilación o construcción de software (build), como un archivo .jar, un archivo zip o una imagen de Docker, listo pa...
Repositorio (Repository)
Depósito de almacenamiento centralizado. Puede referirse a un repositorio de código fuente (ej: Git) o a un repositorio de artefactos y binarios (ej: ...
Ansible
Herramienta de automatización informática de código abierto (IaC) que permite la gestión de configuraciones, el despliegue de aplicaciones y la orques...