Cheatsheets

Chuletas de comandos y sintaxis que uso a diario a primer vistazo.

Docker

⚙️ Conceptos clave

TérminoDescripción
ImagePlantilla inmutable para crear contenedores
ContainerInstancia en ejecución de una imagen
DockerfileArchivo con instrucciones para construir una imagen
VolumeAlmacenamiento persistente fuera del contenedor
RegistryRepositorio 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> --help para ver la documentación de cualquier comando.