Hoja de trucos para Docker

Advertisements

Cuando se trabaja con Docker, hay muchos comandos para administrar el contenedor, las imágenes, solucionar problemas o acceder a información útil en tiempo de ejecución. Los siguientes son algunos comandos para ayudar con ese tipo de tareas.

Administración de Container

A continuación se pueden encontrar los commandos más comunes para administrar los Docker containers.

# Mostrar los docker containers que están activos
docker ps

# Mostrar TODOS docker containers, incluso los inactivos
docker ps -a

# Correr un container
docker run <image>:<tag>

# Correr un container y conectarse a él
docker run -it <image>:<tag>

# Correr un container y eliminarlo al terminar
docker run --rm <image>:<tag>

# Correr un container en segundo plano (background)
docker run -d <image>:<tag>

# Detener un container
docker stop <container>

# Remover un container
docker rm <container>

# Matar un container
docker kill <container>

Administración de Imagenes Docker

Abajo se puede encontrar los comandos más comunes para administrar Docker images.

# Listar las imagenes disponibles localmente
docker images

# Construir una image con un dockerfile
docker build -t <image>:<tag> <run_directory> -f <dockerfile>

# Remover una imagen local
docker rmi <image>:<tag>

# Mostrar metada para una imagen
docker image inspect <image>

# Remover todas las images que no se utilizan
docker image prune

Interacción entre Host y el Container

Aunque Docker proporciona aislamiento en el contenedor, a veces es posible que necesitemos realizar una interacción adicional entre la máquina Host y dicho contenedor, por ejemplo: copiar información, acceder a un puerto en el contenedor o compartir una carpeta entre el host y el contenedor.

# Mapear un puerto local a una instancia de docker
docker run -d -p 127.0.0.1:<local_port>:<docker_port> <image>

# Listar los puertos de un container que está corriendo
docker port <container> 

Si necesitamos copiar datos del contenedor docker a la máquina host o viceversa

Advertisements
# Copy file or folder from a docker container to host machine
docker cp <container>:<container_dir> <local_dir>

# Copy file or folder from local machine onto a container
docker cp <local_dir> <container>:<container_dir>

Usando volumenes

# Listar volumenes
docker volume ls

# Crear un volumen
docker volume create <volume>

# Eliminar un volumen
docker volume rm <volume>

# Mostrar medatata de un volumen
docker volume inspect <volume>

# Borrar todos los volumenes que no son usados por ningún container
docker volume prune

# Montar un directorio local a un container
docker run -v <local_dir>:<container_dir> <image>

Registro/Repositorio

Estos comandos ayudan a conectar a un repositorio de imagenes, subir o descargar imagenes de él.

# Login a un repositorio remoto
docker login <repository>

# Buscar por imagenes docker en un repositorio
docker search <image>

# Pull una imagen docker image desde un repositorio
docker pull <image>

# Push una image a un repositorio remoto
docker push <image>:<tag>

#Retag una imagen local con un nuevo nombre
docker tag <image>:<tag> <repository>/<image>:<tag>

Docker Compose

A continuación puede encontrar los comandos más comunes para interactuar con Docker Compose.

# Start your docker-compose defined resources in detached mode
docker-compose up -d -f <docker_compose_yaml>

# Stop all docker-compose resources
docker-compose stop

# Destroy all docker-compose resources
docker-compose down

# Show docker-compose processes
docker-compose ps

# Show docker-compose logs
docker-compose logs

# Show docker-compose resource consumption
docker-compose top

# Pull latest docker-compose images
docker-compose pull

Docker Troubleshooting

Cuando ocurre un problema, es posible que necesitemos acceder a los logs o al interior del contenedor. Para ello, podemos utilizar los siguientes comandos..

# Muestra los logs de un contenedor
docker logs <container>

# Muestra los últimos registros "en vivo" de los logs de un contenedor
docker logs -f <container>

# Muestra timestamps en los logs de docker
docker logs -t <container>

# Ejecuta un commando en un contenedor
docker exec -it <container_id> /bin/bash

Hay algunos otros comandos útiles para obtener información para solucionar un problema.

# Muestra detalles/metadata de un container
docker inspect <container>

# Muestra una vista 'top' de los procesos ejecutandose en un contenedor
docker top <container>

# Muestra una vista 'top' de todos los contenedores docker
docker stats

# Muestra cualquier archivo que haya cambiado desde el "arranque"
docker diff <container>

# Conectarse a un contenedor que ya está corriendo
docker attach <container>

# Muesta información general de docker
docker system info

# Muestra el espacio en disco utilizado por docker
docker system df

Referencias

Advertisements

Leave a Reply

Your email address will not be published.