Docker Guía de referencia rápida
Algunos parámetros frecuentes de comandos de Docker
Índice
Aquí está una hoja de trucos de Docker que cubre los comandos más importantes y conceptos desde la instalación hasta la ejecución de contenedores y la limpieza:
Instalación
En Ubuntu
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
sudo apt install docker-ce
sudo systemctl start docker
Instalación de Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
Comandos Generales de Docker
Versión y Información del Sistema
docker version # Muestra las versiones del CLI y del demonio de Docker
docker system info # Lista datos sobre tu entorno de Docker
docker help # Ver el índice de ayuda
docker <command> --help # Ver información de ayuda para un comando específico
Inicio de sesión y Cierre de sesión
docker login # Iniciar sesión en Docker Hub
docker logout # Cerrar sesión de Docker Hub
Gestión de Imágenes
Listar Imágenes
docker images # Listar todas las imágenes
docker images -a # Listar todas las imágenes, incluyendo imágenes intermedias
Descargar Imágenes
docker pull <image-name:version> # Descargar una imagen desde Docker Hub
Construir Imágenes
docker build -t <image-name> . # Construir una imagen desde el Dockerfile del directorio actual
docker build -f <Dockerfile-path> -t <image-name> . # Construir una imagen desde un Dockerfile específico
docker build --build-arg foo=bar . # Construir una imagen con argumentos de construcción
docker build --pull . # Descargar versiones actualizadas de imágenes referenciadas en instrucciones FROM
docker build --quiet . # Construir una imagen sin emitir salida
Etiquetar y Subir Imágenes
docker tag <local-image-name> <username>/<preferred-image-name>
docker push <username>/<preferred-image-name>
Eliminar Imágenes
docker rmi <image-name> # Eliminar una imagen específica
docker image prune # Eliminar imágenes no utilizadas
docker image prune -a # Eliminar todas las imágenes no utilizadas
Eliminar imágenes colgantes
docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
Eliminar etiqueta de imagen
docker rmi repository/image-name:tag
Gestión de Contenedores
Ejecutar Contenedores
docker run -itd --name <container-name> <image-name> # Ejecutar un contenedor en modo detachado
docker run -it -p <host-port>:<docker-port> <image-name> # Ejecutar un contenedor con mapeo de puertos
docker run -it --name <container-name> <image-name> # Ejecutar un contenedor interactivamente
Listar Contenedores
docker ps # Listar contenedores en ejecución
docker ps -a # Listar todos los contenedores
docker ps -s # Listar contenedores en ejecución con uso de CPU y memoria
Iniciar, Detener y Reiniciar Contenedores
docker start <container-name> # Iniciar un contenedor detenido
docker stop <container-name> # Detener un contenedor en ejecución
docker restart <container-name> # Reiniciar un contenedor
Eliminar Contenedores
docker rm <container-name> # Eliminar un contenedor detenido
docker rm -f <container-name> # Eliminar forzadamente un contenedor
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) # Eliminar todos los contenedores
Eliminar todos los contenedores detenidos
docker container prune
Conectar a Contenedores
docker attach <container-name> # Conectar a un contenedor en ejecución
docker exec -it <container-name> bash # Ejecutar un comando en un contenedor en ejecución de forma interactiva
Inspeccionar Contenedores
docker inspect <container-name> # Inspeccionar un contenedor
docker logs <container-name> # Ver los registros de un contenedor
docker port <container-name> # Mostrar los mapeos de puertos de un contenedor
Gestión de Redes
docker network ls # Listar todas las redes
docker network create <network-name> # Crear una nueva red
docker network rm <network-name> # Eliminar una red
Gestión de Volúmenes
docker volume ls # Listar todos los volúmenes
docker volume create <volume-name> # Crear un nuevo volumen
docker volume rm <volume-name> # Eliminar un volumen
docker run -v <host-path>:<container-path> <image-name> # Montar un volumen
Docker Compose
Comandos Básicos
docker-compose up # Iniciar servicios definidos en docker-compose.yml
docker-compose up -d # Iniciar servicios en modo detachado
docker-compose down # Detener y eliminar servicios
docker-compose ps # Listar servicios en ejecución
docker-compose logs # Ver los registros de los servicios
docker-compose start # Iniciar servicios
docker-compose stop # Detener servicios
docker-compose pause # Pausar servicios
docker-compose unpause # Reanudar servicios
Comandos de Dockerfile
Construir Imagen desde Dockerfile
docker build -t <image-name> <Dockerfile-path> # Construir una imagen desde un Dockerfile
Ejemplo de Dockerfile
FROM <base-image>
RUN <command>
COPY <source> <destination>
EXPOSE <port>
CMD ["<command>", "<argument>"]
Seguridad y Secretos
Secretos de Docker
docker secret create <secret-name> <file> # Crear un secreto
docker secret ls # Listar todos los secretos
docker secret rm <secret-name> # Eliminar un secreto
Seguridad de Docker
- Usa secretos de Docker para gestionar centralmente datos sensibles y transmitirlos de forma segura a los contenedores.
- Los secretos están cifrados durante su transmisión y en reposo en un clúster de Docker swarm.
Limpieza
Eliminar Recursos No Utilizados
docker system prune # Eliminar datos no utilizados (imágenes, contenedores, redes, volúmenes)
docker image prune # Eliminar imágenes no utilizadas
docker container prune # Eliminar contenedores no utilizados
docker network prune # Eliminar redes no utilizadas
docker volume prune # Eliminar volúmenes no utilizados
Eliminar imágenes sin etiqueta
A veces, después de una compilación exitosa, hay una imagen como esta del comando docker images
:
para eliminar esas imágenes con etiquetas
docker rmi $(docker images --filter “dangling=true” -q --no-trunc)
lo anterior es antiguo e incompatible. El parámetro dangling=true está obsoleto. Usa
docker system prune
pedirá:
ADVERTENCIA: Esto eliminará:
- todos los contenedores detenidos
- todos los volúmenes no utilizados por al menos un contenedor
- todas las redes no utilizadas por al menos un contenedor
- todas las imágenes colgantes
puedes decidir decir Sí a esta advertencia…
Esta hoja de trucos cubre los comandos y conceptos esenciales necesarios para gestionar contenedores, imágenes, redes, volúmenes y más de Docker. Para una exploración más profunda, consulta las guías y tutoriales detallados disponibles en línea.
Enlaces útiles
- Hoja de trucos de Python
- Hoja de trucos de Conda
- Hoja de trucos de Bash
- Hoja de trucos de Ollama
- Hoja de trucos de Kubernetes
- Codificación y decodificación Base64 en Windows, Linux y Mac
- Instalar Portainer en Linux
- Reinstalar Linux
- Cómo iniciar ventanas de terminal en mosaico en Linux Mint y Ubuntu
- MinIO como alternativa a AWS S3. Visión general e instalación de MinIO
- Hoja de trucos de parámetros de línea de comandos de MinIO