⚙️ Conceptos clave
| Término | Descripción |
|---|---|
| Image | Plantilla inmutable para crear contenedores |
| Container | Instancia en ejecución de una imagen |
| Dockerfile | Archivo con instrucciones para construir una imagen |
| Volume | Almacenamiento persistente fuera del contenedor |
| Registry | Repositorio de imágenes (ej: Docker Hub) |
📦 Imágenes
docker images # Listar imágenes locales
docker pull nginx # Descargar imagen de Docker Hub
docker build -t mi-app:1.0 . # Construir imagen desde Dockerfile
docker rmi mi-app:1.0 # Eliminar imagen
docker tag mi-app:1.0 mi-app:latest # Etiquetar imagen
🚀 Contenedores
docker run nginx # Crear y arrancar contenedor
docker run -d nginx # En segundo plano (detached)
docker run -p 8080:80 nginx # Mapear puerto host:contenedor
docker run --name mi-nginx nginx # Asignar nombre al contenedor
docker run -it ubuntu bash # Modo interactivo con terminal
docker ps # Contenedores en ejecución
docker ps -a # Todos (incluidos parados)
docker stop mi-nginx # Detener contenedor
docker start mi-nginx # Arrancar contenedor parado
docker restart mi-nginx # Reiniciar contenedor
docker rm mi-nginx # Eliminar contenedor parado
docker rm -f mi-nginx # Eliminar forzando ⚠️
🔍 Inspección y logs
docker logs mi-nginx # Ver logs del contenedor
docker logs -f mi-nginx # Logs en tiempo real
docker exec -it mi-nginx bash # Entrar al contenedor en ejecución
docker inspect mi-nginx # Info detallada en JSON
docker stats # Uso de CPU/memoria en tiempo real
💾 Volúmenes
docker volume create mis-datos # Crear volumen
docker volume ls # Listar volúmenes
docker volume rm mis-datos # Eliminar volumen
docker run -v mis-datos:/app/data nginx # Montar volumen en contenedor
docker run -v $(pwd):/app nginx # Montar directorio local (bind mount)
🌐 Redes
docker network ls # Listar redes
docker network create mi-red # Crear red personalizada
docker run --network mi-red nginx # Conectar contenedor a una red
📝 Dockerfile básico
FROM node:20-alpine # Imagen base
WORKDIR /app # Directorio de trabajo
COPY package*.json ./ # Copiar dependencias
RUN npm install # Ejecutar comando al construir
COPY . . # Copiar el resto del código
EXPOSE 3000 # Puerto que expone el contenedor
CMD ["node", "index.js"] # Comando al arrancar
🐙 Docker Compose
docker compose up # Levantar todos los servicios
docker compose up -d # En segundo plano
docker compose down # Parar y eliminar contenedores
docker compose down -v # También elimina volúmenes ⚠️
docker compose logs -f # Ver logs de todos los servicios
docker compose ps # Estado de los servicios
🧹 Limpieza
docker system prune # Eliminar recursos no usados
docker system prune -a # Incluye imágenes sin usar ⚠️
docker image prune # Solo imágenes huérfanas
docker container prune # Solo contenedores parados
Tip: Usa
docker <comando> --helppara ver la documentación de cualquier comando.