Saltar a contenido

Comandos Docker

"Clase de la hoja"

########################################################################################################################################################################################################################################################## Copiar todos los comandos
########################################################################################################################################################################################################################################################## Generar PDF seleccionado/button

■/div titulada

Comandos completos de Docker y flujos de trabajo para la contenedorización en todas las plataformas.

Comandos básicos

Command Description
docker --version Show Docker version
docker info Display system-wide information
docker help Show help for Docker commands
docker images List all images
docker ps List running containers
docker ps -a List all containers (running and stopped)
docker pull <image> Pull an image from registry
docker run <image> Run a container from image
docker stop <container> Stop a running container
docker start <container> Start a stopped container
docker restart <container> Restart a container
docker rm <container> Remove a container
docker rmi <image> Remove an image

Container Management

Command Description
docker run -d <image> Run container in detached mode
docker run -it <image> Run container interactively
docker run -p 8080:80 <image> Map port 8080 to container port 80
docker run -v /host:/container <image> Mount volume
docker run --name <name> <image> Run container with custom name
docker exec -it <container> bash Execute bash in running container
docker logs <container> View container logs
docker logs -f <container> Follow container logs
docker inspect <container> Inspect container details
docker stats Show container resource usage
docker top <container> Show running processes in container

Gestión de imágenes

Command Description
docker build -t <name> . Build image from Dockerfile
docker build -t <name>:<tag> . Build image with tag
docker tag <image> <new-name> Tag an image
docker push <image> Push image to registry
docker save <image> > file.tar Save image to tar file
docker load < file.tar Load image from tar file
docker history <image> Show image history
docker search <term> Search for images in registry

Docker Compose

Command Description
docker-compose up Start services defined in compose file
docker-compose up -d Start services in detached mode
docker-compose down Stop and remove containers
docker-compose build Build or rebuild services
docker-compose logs View logs for all services
docker-compose ps List containers
docker-compose exec <service> bash Execute command in service
docker-compose pull Pull latest images
docker-compose restart Restart services

Gestión de redes

Command Description
docker network ls List networks
docker network create <name> Create a network
docker network rm <name> Remove a network
docker network inspect <name> Inspect network details
docker run --network <name> <image> Run container on specific network

Gestión del volumen

Command Description
docker volume ls List volumes
docker volume create <name> Create a volume
docker volume rm <name> Remove a volume
docker volume inspect <name> Inspect volume details
docker volume prune Remove unused volumes

Corrientes de trabajo comunes

Development Workflow

# Build and run application
docker build -t myapp .
docker run -p 3000:3000 myapp

# Development with volume mounting
docker run -p 3000:3000 -v $(pwd):/app myapp

# Using Docker Compose for development
docker-compose up --build

Despliegue de la producción

# Build production image
docker build -t myapp:prod .

# Tag for registry
docker tag myapp:prod registry.com/myapp:latest

# Push to registry
docker push registry.com/myapp:latest

# Deploy on production server
docker pull registry.com/myapp:latest
docker run -d -p 80:3000 --name myapp-prod registry.com/myapp:latest

Container Debugging

# Check container logs
docker logs -f container-name

# Execute shell in running container
docker exec -it container-name bash

# Inspect container configuration
docker inspect container-name

# Check resource usage
docker stats container-name

Buenas prácticas

Optimización de ficheros

  • Utilizar construcciones multietapa para reducir el tamaño de la imagen
  • Leverage build cache by ordering instructions properly
  • Use etiquetas de imagen de base específicas, evite latest_
  • Minimizar el número de capas
  • Use .dockerignore_ para excluir archivos innecesarios

Seguridad

  • Ejecutar contenedores como usuario no root
  • Use imágenes de base oficiales cuando sea posible
  • Actualizar regularmente imágenes de base
  • Escaneo imágenes para vulnerabilidades
  • Limitar los recursos de contenedores (CPU, memoria)

Ejecución

  • Use imágenes de base apropiadas (alpinas para menor tamaño)
  • Optimize layer caching
  • Use cheques de salud para contenedores
  • Uso de los contenedores
  • Uso de volúmenes para datos persistentes

Despliegue de la producción

  • Usa herramientas de orquestación (Docker Swarm, Kubernetes)
  • Implementar registros y monitoreo adecuados
  • Uso de la gestión de secretos para datos sensibles
  • Configurar copias de seguridad automatizadas
  • Implementar actualizaciones de rodaje