Optimización Avanzada en Docker

1

La importancia de Aprender Docker

2

Desbloqueando el Poder de Docker

3

Construcción de Imágenes Multi-stage

4

Escaneo de imágenes en Docker

5

Optimización de Imágenes de docker con Distroless

6

Compilación Multiplataforma

7

Gestión de Caché y Eficiencia en Builds

8

Reducción de Dependencias y Minimización de Tamaño

9

Optimización de Build Context y Reducción de Transferencias

10

Explorando Docker Hub

Buenas Prácticas en Docker

11

Uso Eficiente de Capas en Imágenes Docker

12

Uso de .dockerignore para Optimización

13

Eliminación de Archivos Temporales y Residuos en Docker

14

Agrega usuarios a tu imagen de docker

15

Mejores Prácticas para Construcción de Imágenes

Instalación y Configuración en Entornos Multiplataforma

16

Despliegue de Docker en Azure y Entornos Locales

17

Publicar tu imagen a Container Apps de Azure

Redes Avanzadas y Balanceo de Carga

18

Modelos de Red en Docker

19

Exposición y Publicación de Puertos en Docker

20

Balanceo de Carga con Docker

Automatización de CI/CD

21

Ejecución de Scripts Multi-line en Docker

22

Automatización de CI/CD con Docker

23

Estrategias Avanzadas de CI/CD en Docker

24

Publicando mi imagen de docker a la nube con CI/CD

Orquestación

25

Retomando Docker Compose

26

Secciones en un archivo Docker Compose

27

Agregando volúmenes con Docker Compose

28

Secuencia de apagado

29

Introducción a Docker Swarm

30

Replicación de Stacks con Docker Compose

31

De Docker a la nube

32

Orquestadores de contenedores

33

Costos de Docker

Develop

34

Introducción a los devcontainers

No tienes acceso a esta clase

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

Agregando volúmenes con Docker Compose

27/34
Recursos

¿Qué es Docker y cómo los volúmenes solucionan problemas de persistencia de datos?

Docker es una herramienta poderosa que permite a los desarrolladores empaquetar aplicaciones y sus dependencias en contenedores, asegurando que se ejecuten de manera uniforme en cualquier entorno. Sin embargo, uno de los desafíos más significativos cuando se empieza a usar Docker es la persistencia de datos. Al detener un contenedor, los datos almacenados se pierden. Aquí es donde los volúmenes de Docker ofrecen una solución crucial, proporcionando una forma de almacenar datos de manera persistente.

¿Cuántos tipos de volúmenes existen en Docker?

En Docker, esencialmente hay dos tipos de volúmenes que facilitan la gestión de datos:

  1. Volúmenes de tipo Bind: Funcionan como un enlace directo entre una carpeta del sistema anfitrión y una del contenedor.
  2. Volúmenes nombrados: Administrados completamente por Docker, no requieren un path específico en el sistema de archivos del anfitrión.

¿Cómo configurar volúmenes de tipo Bind en Docker Compose?

La configuración de un volumen de tipo Bind se puede realizar fácilmente utilizando un archivo Docker Compose. Aquí te muestro un ejemplo de cómo hacerlo:

version: '3'
services:
  web:
    image: nginx
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html

En este setup, la carpeta html del sistema anfitrión se enlaza con /usr/share/nginx/html en el contenedor. De este modo, cualquier cambio realizado en la carpeta html local se reflejará automáticamente en el contenedor.

¿Cómo podemos implementar volúmenes nombrados para una base de datos?

La implementación de volúmenes nombrados es óptima cuando necesitas asegurarte de que los datos persistan incluso cuando un contenedor específico se apaga. Aquí tienes un ejemplo con MySQL:

version: '3'
services:
  db:
    image: mysql
    volumes:
      - dbdata:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: example

volumes:
  dbdata:

En este caso, dbdata es un volumen nombrado que almacena los datos de la base de datos MySQL en el directorio /var/lib/mysql.

¿Cómo monitorear y gestionar los volúmenes?

Docker facilita el monitoreo y la gestión de volúmenes, tanto desde la terminal como desde Docker Desktop, lo que proporciona opciones visuales para una administración más sencilla:

  • Terminal: Puedes utilizar comandos como docker volume ls para listar los volúmenes disponibles y docker volume inspect [VOLUME_NAME] para inspeccionar un volumen específico.

  • Docker Desktop: Ofrece una interfaz gráfica donde puedes ver directamente los volúmenes en uso y la información almacenada en ellos.

Trabajar con volúmenes en Docker simplifica enormemente el flujo de desarrollo, permitiéndote mantener la integridad de los datos y aumentar la eficiencia en la gestión de aplicaciones contenedorizadas. Los volúmenes enlazados, además, facilitan el desarrollo web en entorno local, permitiéndote hacer cambios en tiempo real sin necesidad de recompilar la imagen. Con estas herramientas a tu disposición, estás listo para optimizar tu experiencia con Docker al máximo.

Aportes 1

Preguntas 0

Ordenar por:

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

en macOS Sequoia Versión 15.2 cuando ejecuté el comando `docker compose up` me saltó el siguiente error: ![](https://static.platzi.com/media/user_upload/image-b88eec5c-f376-4da7-8a2b-fd6d42fe4a0d.jpg) para solventar este error tube que actualizar mi archivo docker-compose.yml: `services:` ` web:` ` image: nginx:latest` ` ports:` ` - "80:80"` ` volumes:` ` - ./html:/usr/share/nginx/html` ` app:` ` image: gagandaka/websiteplatzi:latest` ` volumes:` ` - app_data:/app/data` ` db:` ` image: mysql:5.7` ` platform: linux/amd64` ` environment:` ` MYSQL_ROOT_PASSWORD: example` ` volumes:` ` - db_data:/var/lib/mysql ` `volumes:` ` app_data: ` ` db_data:`