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
# 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
- https://phoenixnap.com/kb/list-of-docker-commands-cheat-sheet
- https://github.com/wsargent/docker-cheat-sheet
- https://swissarmydevops.com/containers/docker/docker-cli-cheat-sheet
- https://www.docker.com/wp-content/uploads/2022/03/docker-cheat-sheet.pdf