¿Qué es Docker?¶
Docker permite empaquetar una aplicación con lo que necesita para ejecutarse y ponerla en marcha de forma reproducible. En el curso lo usaremos mediante DDEV para levantar Drupal y servicios como PHP y MariaDB.
Tres conceptos básicos¶
- Imagen: plantilla preparada con el sistema de archivos y la configuración necesarios para ejecutar un servicio. Se crea a partir de instrucciones, normalmente definidas en un
Dockerfile. Una imagen no está ejecutándose. - Contenedor: instancia en ejecución creada a partir de una imagen. Es el proceso aislado que ejecuta el servicio, por ejemplo PHP o MariaDB. Se puede detener y volver a crear.
- Volumen: almacenamiento persistente que Docker conecta a un contenedor. Sirve para conservar datos aunque el contenedor se elimine y se cree de nuevo; por ejemplo, la base de datos de Drupal.
Cómo se relacionan¶
flowchart LR
SRC[Dockerfile y configuración] -->|construyen| IMG[Imagen]
IMG -->|crea una instancia| C[Contenedor en ejecución]
C <-->|lee y escribe datos persistentes| V[(Volumen Docker)]
C --> APP[Servicio: PHP o MariaDB]
Una misma imagen puede servir para crear varios contenedores. El contenedor tiene una capa de escritura propia, pero esa capa no es el lugar adecuado para guardar datos que deban sobrevivir a su eliminación. Para eso se conecta un volumen.
Ejemplo en un proyecto web¶
Piensa en el servicio de MariaDB de Drupal:
- La imagen contiene MariaDB y su entorno de ejecución.
- Docker crea un contenedor desde esa imagen y ejecuta el servidor de base de datos.
- Un volumen guarda las tablas y registros de Drupal para que sigan ahí si DDEV recrea el contenedor.
En DDEV no solemos crear estos elementos manualmente: DDEV configura los servicios y volúmenes del proyecto por nosotros. Entenderlos ayuda a saber qué se puede recrear y qué datos deben persistir.
Resumen rápido¶
| Concepto | Se parece a… | ¿Qué contiene o hace? | ¿Persiste al eliminar el contenedor? |
|---|---|---|---|
| Imagen | Una plantilla de instalación | Archivos y configuración para crear el entorno | Sí, mientras se conserve la imagen |
| Contenedor | Una instancia arrancada | Ejecuta un proceso o servicio aislado | No necesariamente |
| Volumen | Un disco de datos conectado | Conserva datos que necesita la aplicación | Sí |
Idea clave: la imagen define el punto de partida, el contenedor ejecuta el servicio y el volumen conserva los datos.
Documentación oficial de Dockerfile¶
Estas páginas pertenecen a la documentación oficial de Docker:
- Introducción a Dockerfile — explica qué es, cómo se organiza y presenta instrucciones habituales como
FROM,RUN,WORKDIR,COPYyCMD. - Escribir un Dockerfile — tutorial guiado para crear una imagen sencilla.
- Referencia completa de Dockerfile — catálogo detallado de instrucciones y su sintaxis.
- Buenas prácticas al construir imágenes — recomendaciones sobre imágenes base, caché, tamaño, seguridad y contenedores efímeros.
- Contexto de construcción — qué archivos puede utilizar Docker durante una construcción.
- Archivo
.dockerignore— cómo excluir del contexto archivos innecesarios o sensibles.
Orden recomendado: empieza por la introducción, sigue el tutorial y consulta la referencia cuando necesites entender una instrucción concreta.