Saltar a contenido

¿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:

  1. La imagen contiene MariaDB y su entorno de ejecución.
  2. Docker crea un contenedor desde esa imagen y ejecuta el servidor de base de datos.
  3. 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:

Orden recomendado: empieza por la introducción, sigue el tutorial y consulta la referencia cuando necesites entender una instrucción concreta.