Skip to content

Manual de Introducción a Docker

1. ¿Qué es Docker?

Docker es una plataforma de virtualización ligera basada en contenedores. Permite empaquetar una aplicación junto con todas sus dependencias para que se ejecute de forma consistente en cualquier entorno.

Ventajas principales

  • Portabilidad
  • Aislamiento
  • Escalabilidad
  • Rapidez de despliegue
  • Uso eficiente de recursos

2. Conceptos Fundamentales

Imagen

Una imagen es una plantilla inmutable que contiene todo lo necesario para ejecutar una aplicación.

Ejemplo:

docker pull nginx

Contenedor

Un contenedor es una instancia en ejecución de una imagen.

Ejemplo:

docker run -d -p 8080:80 nginx

Dockerfile

Archivo de texto que define cómo construir una imagen.

Ejemplo:

FROM ubuntu:22.04
RUN apt update && apt install -y nginx
CMD ["nginx", "-g", "daemon off;"]

Volúmenes

Permiten persistir datos fuera del contenedor.

Ejemplo:

docker volume create datos
docker run -v datos:/var/lib/mysql mysql

Redes

Permiten comunicación entre contenedores.

Ejemplo:

docker network create redapp
docker run --network redapp --name web nginx

3. Instalación de Docker

En Linux (Ubuntu)

sudo apt update
sudo apt install docker.io
sudo systemctl enable docker
sudo systemctl start docker

Verificación:

docker --version

4. Comandos Básicos

ComandoDescripción
docker psContenedores activos
docker imagesImágenes disponibles
docker stop IDDetener contenedor
docker rm IDEliminar contenedor
docker rmi IDEliminar imagen

Otros comandos útiles

ComandoDescripción
docker ps -aLista todos los contenedores
docker logs IDMuestra logs del contenedor
docker exec -it ID bashAccede a la shell del contenedor
docker statsMonitoriza consumo de recursos
docker system dfUso de espacio en disco Docker

Ejemplo práctico:

docker run hello-world

5. Creación de una Aplicación de Ejemplo

Paso 1: Crear archivo app.py

print("Hola desde Docker")

Paso 2: Crear Dockerfile

FROM python:3.11
WORKDIR /app
COPY app.py .
CMD ["python", "app.py"]

Paso 3: Construir imagen

docker build -t ejemplo-python .

Paso 4: Ejecutar contenedor

docker run ejemplo-python

6. Docker Compose

Permite definir múltiples contenedores.

Ejemplo docker-compose.yml:

version: "3"
services:
  web:
    image: nginx
    ports:
      - "8080:80"

Ejecutar:

docker compose up -d

Algunos comandos básicos

ComandoDescripción
docker compose upInicia los servicios definidos
docker compose up -dInicia en segundo plano (detached)
docker compose downDetiene y elimina contenedores
docker compose down -vElimina también volúmenes
docker compose psLista servicios en ejecución
docker compose logsMuestra logs de todos los servicios
docker compose logs -fLogs en tiempo real
docker compose buildConstruye las imágenes
docker compose pullDescarga imágenes
docker compose restartReinicia servicios
docker compose stopDetiene servicios sin eliminarlos
docker compose startInicia servicios previamente detenidos

Comandos avanzados

ComandoDescripción
docker compose exec servicio bashAcceder a un contenedor
docker compose run servicio comandoEjecutar comando puntual
docker compose configValidar y mostrar configuración final
docker compose topVer procesos en contenedores
docker compose eventsVer eventos del sistema
docker compose rmEliminar servicios detenidos
docker compose pausePausar servicios
docker compose unpauseReanudar servicios

7. Buenas Prácticas

  • Usar imágenes oficiales.
  • Minimizar tamaño de imagen.
  • Versionar Dockerfile.
  • Usar volúmenes para datos persistentes.
  • No ejecutar procesos como root.

8. Actividades Propuestas

  1. Crear una imagen propia con una aplicación Java.
  2. Configurar un contenedor con volumen persistente.
  3. Desplegar dos contenedores comunicándose en red.
  4. Usar Docker Compose para levantar una aplicación web.

9. Recursos

  • Documentación oficial de Docker
  • Docker Hub
  • Play with Docker

Publicado bajo la licencia MIT.