Optimización Avanzada en Docker

1

Conceptos Avanzados de Docker: Optimización y Despliegue en la Nube

2

Prácticas Avanzadas para Optimizar Imágenes Docker

3

Optimización de Dockerfiles con Imágenes Multi-stage

4

Seguridad en Imágenes Docker: Escaneo y Mitigación de Vulnerabilidades

5

Creación de Imágenes Docker Distroless Optimizadas

6

Creación de Imágenes Multiplataforma con Docker

7

Optimización de Imágenes Docker con Caché

8

Optimización de Imágenes Docker para Proyectos .NET

9

Optimización de Imágenes Docker con Build Context

10

Exploración y uso de Docker Hub para contenedores en la nube

Buenas Prácticas en Docker

11

Optimización de Imágenes Docker: Gestión Eficiente de Capas

12

Uso de Docker Ignore para optimizar imágenes de contenedores

13

Optimización de Docker: Limpieza de Imágenes y Contenedores

14

Seguridad en Docker: Creación de Usuarios con Privilegios Limitados

15

Mejores Prácticas para Crear Imágenes Docker de Producción

Instalación y Configuración en Entornos Multiplataforma

16

Implementación de Contenedores Docker en Microsoft Azure

17

Despliegue de Imágenes en Container Apps de Azure

Redes Avanzadas y Balanceo de Carga

18

Modelos de Redes en Docker: Bridge, Host, Overlay y MacVLan

19

Configuración de Puertos en Docker para Contenedores Seguros

20

Balanceo de Carga con Docker y Proxy Reverso en NginX

Automatización de CI/CD

21

Optimización de Dockerfile y uso de scripts externos en contenedores

22

Automatización de Despliegues con GitHub Actions y Docker

23

Automatización de Contenedores con GitHub Actions en CI/CD

24

Despliegue Continuo con GitHub Actions y Azure Web Apps

Orquestación

25

Implementación de Microservicios con Docker Compose

26

Estructura y Configuración de Archivos YAML en Docker Compose

27

Gestión de Volúmenes en Docker con Docker Compose

28

Gestión de Secuencias y Recursos con Docker Compose

29

Primeros pasos con Docker Swarm: Orquestación de Contenedores

30

Implementación de Docker Swarm con Docker Compose

31

Orquestación de Contenedores en Nube: Herramientas y Costos

32

Configuración de Kubernetes en Docker Desktop para Desarrollo Local

33

Planes y costos de Docker: Uso personal y comercial

Develop

34

Creación y uso de Dev Containers en Visual Studio Code

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Gestión de Secuencias y Recursos con Docker Compose

28/34
Recursos

¿Qué descubrí sobre Docker Compose?

Explorando Docker Compose, descubrí un aspecto vital sobre la secuencia de apagado que brinda una forma eficiente de gestionar los recursos de tu computadora. Aunque este detalle ha estado presente desde el inicio, al encontrarlo accidentalmente, su utilidad se destacó: permite ahorrar recursos significativamente. A continuación, te mostraré cómo implementar esta característica.

¿Cómo configurar Docker Compose?

Para comenzar, necesitamos crear una estructura básica de carpetas y archivos. Estos pasos te ayudarán a seguir el proceso de manera adecuada:

  1. Crear carpetas:
  • Una carpeta principal llamada apagado.
  • Una subcarpeta llamada frontend o sitio_web. El nombre no es crucial, pero es importante recordar su ubicación.
  1. Crear un Dockerfile:
  • Dentro de la carpeta frontend, crea un archivo llamado Dockerfile.
  • Este archivo debe simular un pequeño servidor web con Nginx y contener un archivo HTML para simular un servidor web.
  1. Archivo docker-compose.yml:
  • Crea un archivo docker-compose.yml en la carpeta apagado.

  • Define tres servicios:

    • Web Service: Usa una imagen de Nginx y depende del servicio app.
    • App Service: Desplegado con la carpeta frontend.
    • DB Service: Un servicio simple de base de datos.

    version: '3' services: db: image: your_db_image

    app: build: ./frontend depends_on: - db

    web: image: nginx depends_on: - app

Estos elementos configuran el orden de inicio: DB primero, después App, y por último Web, según sus dependencias.

¿Cómo manejar el apagado de Docker Compose?

Al ejecutar docker-compose up, notarás que los servicios se inician en el orden especificado. Sin embargo, al detener la aplicación con Ctrl + C, los servicios se apagan en orden inverso: comenzando por Web. Este enfoque en cadena asegura que cada servicio dependiente tenga un cierre ordenado antes de su predecesor.

Ahora, es crucial entender la diferencia entre simplemente usar Ctrl + C y docker-compose down:

  1. Ctrl + C:
  • Detiene la aplicación, pero los contenedores y redes aún persisten. Esto puede consumir recursos innecesarios si olvidamos eliminarlos después.
  1. Docker Compose Down:
  • Este comando limpia completamente los contenedores, las redes y cualquier otro recurso. Con docker-compose down, garantizas que Docker Desktop o cualquier entorno de Docker esté realmente limpio, liberando recursos de tus máquinas virtuales de manera eficiente.

Usar docker-compose down requiere más esfuerzo, ya que debes abrir una nueva terminal y posicionarte exactamente en la misma ubicación del proyecto antes de ejecutar el comando. No obstante, los beneficios son notables en la gestión de recursos.

¿Por qué es importante este proceso en el entorno local?

Implementar este método de apagado optimiza tu entorno de desarrollo local. Aquí algunos beneficios:

  • Optimización de recursos: Al liberar recursos al cerrar correctamente tus servicios.
  • Mantenimiento limpio: La limpieza completa evita que los contenedores y redes queden pendientes, lo que podría causar conflictos en futuros despliegues.
  • Eficiencia en el desarrollo: Te permite concentrarte en el desarrollo, sin preocuparte por limpiar manualmente los recursos.

En resumen, comprender y aplicar estas tácticas no solo optimiza el uso de Docker Compose, sino que también refuerza el buen manejo de los entornos de desarrollo, ahorrando tiempo y esfuerzo técnico.

Aportes 3

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Recientemente descubrí que podemos usar el parametro -V para liberar vólumenes que se definieron en el compose: `docker compose down -v`
También eliminaría los volumenes al ejecutar el down? Porque si es así creo que es riesgoso
en mi caso (desde el sistema operativo macOS) me vuelve a salir el fallo que me salía en la classe anterior: ![](https://static.platzi.com/media/user_upload/image-d1b9887a-b2a0-4c4a-9a93-94656e6b1f3f.jpg) no estoy del todo seguro, pero según he podido notar , solo me salta cuando intenta leer o ejecutar el servicio `db` (`mysql:5.7)` del archivo docker-compose.yml, mi solucion: `services:` ` web:` ` image: nginx:latest` ` depends_on:` ` - app` ` app:` ` build: frontend/` ` depends_on:` ` - db` ` db:` ` image: mysql:5.7` ` platform: linux/amd64` ` environment:` ` MYSQL_ROOT_PASSWORD: p1ssw0rd!321`