¿Qué es Docker?
Docker es una plataforma de código abierto que permite crear, ejecutar y gestionar contenedores. Un contenedor es una unidad ligera y portátil que encapsula una aplicación junto con todas sus dependencias, configuraciones y librerías necesarias para su ejecución. Gracias a los contenedores, es posible garantizar que una aplicación se ejecute de manera consistente sin importar el entorno en el que se despliegue.
¿Por qué usar Docker?
- Portabilidad: Los contenedores funcionan igual en cualquier sistema que tenga Docker instalado.
- Aislamiento: Cada contenedor se ejecuta de forma independiente del resto del sistema.
- Eficiencia: Consumen menos recursos que las máquinas virtuales tradicionales.
- Rapidez: Los contenedores arrancan en segundos.
Componentes principales de Docker
1. Docker Engine
Es el motor que ejecuta los contenedores. Está compuesto por:
- Servidor (dockerd): Se encarga de crear, ejecutar y gestionar los contenedores.
- API REST: Permite interactuar con Docker desde otros programas.
- Cliente (docker): Línea de comandos que usamos para trabajar con Docker.
2. Imágenes
Una imagen es una plantilla inmutable que se usa para crear contenedores. Contiene el sistema de archivos, código, librerías, variables de entorno, etc.
Puedes obtener imágenes desde Docker Hub (el repositorio oficial) o crear tus propias imágenes usando un archivo Dockerfile
.
3. Contenedores
Es una instancia en ejecución de una imagen. Son efímeros: pueden crearse, destruirse, pausarse o reiniciarse fácilmente.
4. Dockerfile
Es un archivo de texto que contiene instrucciones para construir una imagen personalizada.
Ejemplo:
FROM node:18
WORKDIR /app
COPY . .
RUN npm install
CMD ["node", "index.js"]
5. Volúmenes
Permiten persistir datos generados por un contenedor, incluso si este se elimina.
¿Cómo funciona Docker?
Docker usa características del kernel de Linux como namespaces y cgroups para aislar procesos y gestionar recursos. Cada contenedor corre como un proceso en el sistema operativo del host, pero aislado del resto.
Instalación básica de Docker
En sistemas basados en Debian/Ubuntu:
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
Verifica que Docker esté funcionando:
docker --version
docker run hello-world
Comandos básicos
docker run
: ejecuta un contenedor.docker ps
: lista contenedores activos.docker images
: lista imágenes descargadas.docker build
: crea una imagen desde un Dockerfile.docker stop
: detiene un contenedor.docker rm
: elimina un contenedor.docker rmi
: elimina una imagen.
Ejemplo:
docker run -d -p 80:80 nginx
Este comando descarga la imagen de NGINX y la ejecuta en segundo plano, exponiendo el puerto 80.
Casos de uso típicos
- Desarrollo local reproducible.
- Integración continua y despliegue continuo (CI/CD).
- Microservicios.
- Entornos de prueba y staging.
Documentación generada con Inteligencia Artificial