bashadvanced193 snippets

Docker: Comandos de Producción

Olvida la configuración manual. Copia y pega los comandos para levantar containers, limpiar volúmenes y hacer deploy en tiempo récord.

Secciones9
1

ℹ️ Información Básica

8 snippets

Usa esta sección para verificar el estado general de Docker, las versiones instaladas u obtener información detallada del sistema.

Verificar Versión de Docker

Muestra la versión del cliente Docker instalada en su sistema, útil para verificar la compatibilidad y el entorno.

bash
docker --version

Información Detallada del Sistema Docker

Proporciona un resumen detallado de la información del sistema Docker, incluyendo el número de contenedores (en ejecución, pausados, detenidos), imágenes, volúmenes, redes y configuraciones del daemon.

bash
docker info

Información Detallada del Sistema (Alternativo)

Similar a `docker info`, este comando puede ofrecer una vista más específica o formateada de la información del sistema Docker, dependiendo de la versión y configuración.

bash
docker system info

Uso de Espacio en Disco por Docker

Muestra el uso de espacio en disco por Docker, detallando el consumo por imágenes, contenedores, volúmenes y caché de build, ayudando a identificar dónde se está utilizando el espacio.

bash
docker system df

Versión del Cliente y Servidor Docker

Muestra las versiones del cliente (CLI) y del servidor (daemon) Docker, permitiendo verificar la comunicación y la compatibilidad entre ellos.

bash
docker version

Eventos del Sistema Docker en Tiempo Real

Transmite eventos en tiempo real del daemon Docker, como creación, inicio, parada y destrucción de contenedores, imágenes y volúmenes, útil para monitoreo continuo.

bash
docker system events

Eventos del Sistema en la Última Hora

Muestra eventos del daemon Docker ocurridos en la última hora, útil para revisar actividades recientes del sistema y depurar problemas que surgieron recientemente.

bash
docker system events --since 1h

Limpiar Datos No Utilizados Más Antiguos que 24h

Elimina datos no utilizados por Docker que fueron creados hace más de 24 horas, como containers detenidos, imágenes sin etiqueta y caché de build, ayudando a liberar espacio de forma selectiva.

bash
docker system prune --filter until=24h
2

📦 Containers

20 snippets

Gestión del ciclo de vida de containers Docker, desde la ejecución y configuración hasta la parada, eliminación y depuración.

Listar Containers em Execução

Lista todos os containers Docker que estão atualmente em execução, mostrando seus IDs, nomes, imagens, comandos, portas mapeadas e status.

bash
docker ps

Listar Todos los Contenedores (Incluyendo Detenidos)

Lista todos los contenedores Docker, incluyendo aquellos que están detenidos o han sido terminados (`-a` para "all").

bash
docker ps -a

Listar Solo IDs de Contenedores

Lista solo los IDs de los contenedores Docker que están en ejecución, útil para encadenar comandos o scripts automatizados.

bash
docker ps -q

Listar Contenedores con Formato Personalizado

Lista contenedores en ejecución con un formato de tabla personalizado, mostrando solo los nombres, estado y puertos mapeados, permitiendo una visualización más limpia y enfocada.

bash
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"

Ejecutar Contenedor Mapeando Puerto

Ejecuta un nuevo contenedor a partir de la imagen `blueprint-backend` y mapea el puerto `3001` del host al puerto `3001` dentro del contenedor (`-p` para "publish"), permitiendo acceso externo al servicio.

bash
docker run -p 3001:3001 blueprint-backend

Ejecutar Contenedor en Segundo Plano (Detached)

Ejecuta un nuevo contenedor en modo `detached` (segundo plano, `-d`), asigna el nombre `backend` (`--name`) y mapea el puerto `3001` del host al puerto `3001` del contenedor.

bash
docker run -d --name backend -p 3001:3001 blueprint-backend

Ejecutar Container Interactivo y Eliminar al Salir

Ejecuta un container de la imagen `alpine` en modo interactivo (`-i`) con un pseudo-TTY (`-t`), ejecutando el comando `sh`. El container será automáticamente eliminado (`--rm`) al ser terminado.

bash
docker run -it --rm alpine sh

Ejecutar Container con Variables de Entorno

Ejecuta un container de la imagen `app` y define la variable de entorno `NODE_ENV` como `production` (`-e` para "env"), útil para configurar el comportamiento de la aplicación dentro del container.

bash
docker run -e NODE_ENV=production app

Ejecutar Container con Volumen y Comando Específico

Ejecuta un container de la imagen `node`, montando el directorio de trabajo actual del host (`$(pwd)`) como `/app` dentro del container (`-v` para "volumen") y definiendo `/app` como el directorio de trabajo (`-w`). Luego, ejecuta `npm install`.

bash
docker run -v $(pwd):/app -w /app node npm install

Ejecutar Container con Política de Reinicio Automático

Ejecuta un container de la imagen `app` y configura una política de reinicio automático (`--restart unless-stopped`), garantizando que el container será reiniciado automáticamente a menos que sea explícitamente detenido.

bash
docker run --restart unless-stopped app

Ejecutar Container Limitando Memoria

Ejecuta un container de la imagen `app` y limita la cantidad de memoria RAM que puede usar a 256 megabytes (`--memory`), útil para el control de recursos.

bash
docker run --memory="256m" app

Ejecutar Container Limitando CPU

Ejecuta un container de la imagen `app` y limita el uso de la CPU a 0.5 (equivalente al 50% de un núcleo de CPU) (`--cpus`), útil para el control de recursos.

bash
docker run --cpus="0.5" app

Detener un Contenedor Específico

Envía una señal SIGTERM al contenedor especificado, solicitando su terminación gracefully. Después de un tiempo límite, si el contenedor no se detiene, se envía un SIGKILL.

bash
docker stop container_name

Detener Todos los Contenedores en Ejecución

Detiene todos los contenedores Docker en ejecución, utilizando la salida de `docker ps -q` (que lista solo los IDs de los contenedores en ejecución) como argumento para `docker stop`.

bash
docker stop $(docker ps -q)

Eliminar un Contenedor Específico

Elimina un contenedor Docker específico. El contenedor debe estar detenido antes de ser eliminado, a menos que se use la bandera `-f` (force).

bash
docker rm container_name

Eliminar Todos los Contenedores (En Ejecución y Detenidos)

Elimina todos los contenedores Docker, tanto los en ejecución como los detenidos, utilizando la salida de `docker ps -aq` (que lista todos los IDs) como argumento para `docker rm`.

bash
docker rm $(docker ps -aq)

Reiniciar un Contenedor

Reinicia un contenedor Docker en ejecución, deteniéndolo e iniciándolo de nuevo.

bash
docker restart container_name

Pausar un Contenedor

Pausa todos los procesos dentro de un contenedor en ejecución, suspendiéndolo temporalmente sin terminarlo, liberando recursos de la CPU pero manteniendo la memoria.

bash
docker pause container_name

Despausar un Contenedor

Despausa un contenedor que fue previamente pausado, permitiendo que sus procesos continúen la ejecución.

bash
docker unpause container_name

Forzar Parada de un Contenedor (Kill)

Fuerza la parada inmediata de un contenedor Docker enviando una señal SIGKILL, sin esperar que se cierre gracefuly. Use con cautela, ya que puede resultar en pérdida de datos.

bash
docker kill container_name
3

🖼️ Imágenes

18 snippets

Creación, gestión, listado o limpieza de imágenes Docker. Esencial para el desarrollo y distribución de aplicaciones Dockerizadas.

Listar Imágenes Docker Locales

Lista todas las imágenes Docker almacenadas localmente, mostrando sus repositorios, tags, IDs y tamaños.

bash
docker images

Listar Todas las Imágenes (Incluyendo Intermedias)

Lista todas las imágenes Docker, incluyendo las capas intermedias (`-a` para "all"), que normalmente están ocultas y pueden consumir espacio.

bash
docker images -a

Listar Imagens com Formato Personalizado

Lista imagens Docker com um formato de tabela personalizado, exibindo repositório, tag e tamanho, para uma visualização mais organizada e focada.

bash
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"

Build Básico de Imagen Docker

Construye una imagen Docker a partir del `Dockerfile` ubicado en el directorio `./backend` y la etiqueta con el nombre `blueprint-backend` (`-t` para "tag").

bash
docker build -t blueprint-backend ./backend

Build de Imagen para Frontend

Construye una imagen Docker a partir del `Dockerfile` ubicado en el directorio `./frontend` y la etiqueta con el nombre `blueprint-frontend`.

bash
docker build -t blueprint-frontend ./frontend

Build de Imagen Sin Caché

Construye una imagen Docker a partir del `Dockerfile` en el directorio actual, sin utilizar la caché de capas (`--no-cache`), garantizando que todas las etapas se ejecuten desde cero, y la etiqueta como `app:latest`.

bash
docker build --no-cache -t app:latest .

Build de Imagen Multi-stage con Target Específico

Construye una imagen Docker a partir del `Dockerfile` en el directorio actual, utilizando una etapa específica de build (`--target production`) definida en el Dockerfile multi-stage, y la etiqueta como `app:prod`.

bash
docker build --target production -t app:prod .

Build de Imagen con Argumentos de Build

Construye una imagen Docker a partir del `Dockerfile` en el directorio actual, pasando un argumento de build (`--build-arg NODE_ENV=production`) que puede ser usado dentro del Dockerfile durante el proceso de build, y la etiqueta como `app`.

bash
docker build --build-arg NODE_ENV=production -t app .

Build de Imagen con Progreso Detallado

Construye una imagen Docker con una salida de progreso detallada y sin formato especial (`--progress=plain`), útil para depuración en entornos CI/CD o cuando la salida estándar no es un TTY.

bash
docker build --progress=plain -t app .

Build de Imagen con Squash de Capas

Construye una imagen Docker y "aplana" las capas resultantes en una única capa después de la imagen base, reduciendo el número de capas y, potencialmente, el tamaño final de la imagen (`--squash`).

bash
docker build --squash -t app .

Build de Imagen con Labels (Metadatos)

Construye una imagen Docker y añade una etiqueta (label) `version=1.0` (`--label`) a la imagen, útil para metadatos, organización y filtrado.

bash
docker build --label version=1.0 -t app .

Eliminar una Imagen Docker

Elimina una imagen Docker específica del almacenamiento local. La imagen no puede estar en uso por ningún container para ser eliminada.

bash
docker rmi image_name

Eliminar Todas las Imágenes Locales

Elimina todas las imágenes Docker no utilizadas, utilizando la salida de `docker images -q` (que lista solo los IDs de las imágenes) como argumento para `docker rmi`.

bash
docker rmi $(docker images -q)

Eliminar Imágenes Huérfanas (Dangling Images)

Elimina imágenes Docker que no están asociadas a ningún contenedor y no tienen tags (imágenes "colgantes" o "huérfanas"), liberando espacio en disco.

bash
docker image prune

Eliminar Todas las Imágenes No Usadas (Incluyendo Capas Intermedias)

Elimina todas las imágenes Docker no utilizadas, incluyendo las capas intermedias (`-a` para "all"), que no son referenciadas por ninguna imagen nombrada.

bash
docker image prune -a

Renombrar/Etiquetar una Imagen

Crea una nueva etiqueta (`target:1.0`) para una imagen existente (`source:latest`), permitiendo referenciar la misma imagen con nombres diferentes o versiones específicas.

bash
docker tag source:latest target:1.0

Enviar Imagen a Registro Remoto

Envía una imagen Docker a un registro remoto (`registry.com/app:latest`), haciéndola disponible para otros usuarios o sistemas.

bash
docker push registry.com/app:latest

Extraer Imagen de Registro Remoto

Descarga una imagen Docker de un registro remoto (`registry.com/app:latest`) al almacenamiento local de su sistema.

bash
docker pull registry.com/app:latest
4

📊 Logs y Monitoreo

13 snippets

Depuración, monitoreo de rendimiento y análisis de problemas en containers Docker mediante logs y estadísticas en tiempo real.

Ver Logs de un Contenedor

Muestra la salida de log estándar (stdout/stderr) de un contenedor Docker específico, útil para depuración y monitoreo.

bash
docker logs container_name

Seguir Logs de un Contenedor (Follow)

Muestra los logs de un contenedor en tiempo real, siguiendo nuevas entradas (`-f` para "follow"), manteniendo la conexión abierta y mostrando los logs a medida que se generan.

bash
docker logs -f container_name

Ver Últimas N Líneas de Log

Muestra las últimas 50 líneas de log de un contenedor específico (`--tail`), útil para una rápida verificación de eventos recientes sin cargar todo el historial.

bash
docker logs --tail 50 container_name

Ver Logs a Partir de un Período

Muestra los logs de un contenedor generados en las últimas 2 horas (`--since`), permitiendo filtrar logs por período de tiempo para enfocarse en eventos recientes.

bash
docker logs --since="2h" container_name

Ver Logs con Timestamps

Muestra los logs de un contenedor, añadiendo un timestamp a cada línea de log (`--timestamps`), lo que es útil para análisis cronológico y correlación de eventos.

bash
docker logs --timestamps container_name

Estadísticas de Recursos en Tiempo Real

Muestra un flujo en tiempo real de estadísticas de uso de recursos (CPU, memoria, red, I/O de disco) para todos los containers en ejecución, útil para el monitoreo de rendimiento e identificación de cuellos de botella.

bash
docker stats

Estadísticas de Recurso de Container Específico

Muestra estadísticas de uso de recursos en tiempo real para un container Docker específico, permitiendo enfocarse en el rendimiento de un único servicio.

bash
docker stats container_name

Procesos en Ejecución en el Container

Muestra los procesos en ejecución dentro de un container Docker específico, similar al comando `top` de Linux, útil para depuración y verificación de qué procesos están activos.

bash
docker top container_name

Estadísticas de Recursos Estáticas

Muestra una instantánea estática de las estadísticas de uso de recursos para los containers en ejecución, sin el flujo continuo en tiempo real (`--no-stream`), útil para capturas puntuales.

bash
docker stats --no-stream

Estadísticas de Recursos Formateadas

Muestra estadísticas de uso de recursos de los containers con un formato de tabla personalizado, mostrando el nombre del container y el porcentaje de uso de la CPU, para una visualización concisa.

bash
docker stats --format "table {{.Container}}\t{{.CPUPerc}}"

Eventos Docker en Tiempo Real

Transmite eventos en tiempo real del daemon Docker, como creación, inicio, detención y destrucción de containers, imágenes y volúmenes, útil para auditoría y automatización.

bash
docker events

Inspeccionar Detalles de un Contenedor

Muestra información detallada de bajo nivel sobre un contenedor Docker específico en formato JSON, incluyendo configuraciones de red, volúmenes, estado, metadatos e historial de eventos.

bash
docker inspect container_name

Inspeccionar Detalles de una Imagen

Muestra información detallada de bajo nivel sobre una imagen Docker específica en formato JSON, incluyendo capas, metadatos, configuraciones de puertos y variables de entorno.

bash
docker inspect image_name
5

⚡ Ejecución e Interacción

11 snippets

Interacción directa con containers en ejecución, ejecución de comandos, copia de archivos y gestión de mapeo de puertos y redes.

Acceder a Shell Interactivo en el Contenedor (Bash)

Ejecuta el comando `bash` dentro de un contenedor Docker en ejecución, asignando un pseudo-TTY (`-t`) y manteniendo la entrada estándar abierta (`-i`) para interacción, permitiendo acceso al shell del contenedor.

bash
docker exec -it container_name bash

Acceder a Shell Básico en el Contenedor (Sh)

Ejecuta el comando `sh` (shell básico) dentro de un contenedor Docker en ejecución en modo interactivo con pseudo-TTY, útil cuando `bash` no está disponible en el contenedor.

bash
docker exec -it container_name sh

Ejecutar Comando Específico en el Contenedor

Ejecuta un comando específico (`ls -la /app`) dentro de un contenedor Docker en ejecución, sin necesidad de interacción con un shell.

bash
docker exec container_name ls -la /app

Copiar Archivo del Host al Contenedor

Copia el archivo `file.txt` del host al directorio `/app/` dentro del contenedor especificado (`container_name`).

bash
docker cp file.txt container_name:/app/

Copiar Archivo/Directorio del Contenedor al Host

Copia el directorio `logs` de dentro del contenedor especificado (`container_name:/app/logs`) al directorio local `./logs` en el host.

bash
docker cp container_name:/app/logs ./logs

Ver Puertos Mapeados de un Contenedor

Muestra los mapeos de puertos para un contenedor Docker específico, mostrando qué puertos del host están conectados a qué puertos del contenedor.

bash
docker port container_name

Mapear Puerto Específico al Ejecutar Container

Ejecuta un container de la imagen `nginx` y mapea el puerto `8080` del host al puerto `80` del container (`-p` para "publish"), permitiendo el acceso al servidor web.

bash
docker run -p 8080:80 nginx

Mapear Puertos Automáticamente al Ejecutar Container

Ejecuta un container de la imagen `nginx` y mapea automáticamente todos los puertos expuestos en el `Dockerfile` del container a puertos aleatorios y no utilizados en el host (`-P` para "publish all").

bash
docker run -P nginx

Ejecutar Comando como Usuario Root en el Container

Ejecuta el comando `bash` dentro de un container en ejecución como el usuario `root` (`-u`), útil para tareas administrativas que requieren privilegios elevados.

bash
docker exec -u root container bash

Ejecutar Comando en Segundo Plano en el Container

Ejecuta el comando `sleep 60` dentro de un container en ejecución en modo `detached` (segundo plano, `-d`), sin bloquear el terminal actual.

bash
docker exec -d container sleep 60

Ejecutar Comando con Variables de Entorno en el Container

Ejecuta un comando (`cmd`) dentro de un container en ejecución, pasando una variable de entorno (`--env VAR=value`) que estará disponible solo para la ejecución de ese comando.

bash
docker exec -it container --env VAR=value cmd
6

🧹 Limpieza y Mantenimiento

12 snippets

Liberación de espacio en disco, eliminación de recursos Docker no utilizados y limpieza del entorno.

Eliminar Datos Docker No Usados

Elimina todos los datos no utilizados por Docker, incluyendo contenedores detenidos, redes no utilizadas e imágenes colgantes, pero no volúmenes por defecto.

bash
docker system prune

Eliminar TODOS los Datos Docker No Usados

Elimina todos los datos no utilizados por Docker, incluyendo contenedores detenidos, redes no utilizadas, imágenes colgantes y todas las imágenes sin etiqueta (`-a` para "all").

bash
docker system prune -a

Eliminar Datos No Usados Incluyendo Volúmenes

Elimina todos los datos no utilizados por Docker, incluyendo volúmenes no referenciados por ningún contenedor (`--volumes`), además de contenedores detenidos, redes e imágenes colgantes.

bash
docker system prune --volumes

Eliminar Contenedores Detenidos

Elimina todos los contenedores Docker que están detenidos, liberando recursos y espacio en disco.

bash
docker container prune

Eliminar Imágenes Huérfanas

Elimina imágenes Docker que no están asociadas a ningún contenedor y no tienen tags (imágenes "colgadas" o "huérfanas").

bash
docker image prune

Eliminar Volúmenes No Utilizados

Elimina todos los volúmenes Docker que no están siendo utilizados por ningún container, liberando espacio en disco. Use con cautela para evitar la pérdida de datos.

bash
docker volume prune

Eliminar Redes No Utilizadas

Elimina todas las redes Docker que no están siendo utilizadas por ningún container, liberando recursos de red.

bash
docker network prune

Ver Uso de Espacio Detallado

Muestra el uso de espacio en disco por Docker de forma detallada (`-v` para "verbose"), mostrando información más granular sobre el consumo de cada tipo de recurso.

bash
docker system df -v

Filtrar Eventos del Sistema Docker

Muestra eventos del daemon Docker, filtrando solo los eventos relacionados con containers (`--filter type=container`), útil para monitorear actividades específicas.

bash
docker system events --filter type=container

Limpiar Caché de Build de Docker

Limpia el caché de build de Docker, eliminando capas intermedias no utilizadas, lo que puede liberar espacio en disco y resolver problemas de build.

bash
docker builder prune

Ver Uso de Espacio en Disco

Muestra un resumen del uso de espacio en disco por Docker, detallando el consumo por imágenes, containers, volúmenes y caché de build.

bash
docker system df

Ver Tamaño de las Imágenes Formateado

Lista imágenes Docker con un formato de tabla personalizado, mostrando repositorio, tag y tamaño, para un análisis rápido del espacio ocupado por imágenes.

bash
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"
7

🔧 Docker Compose

84 snippets

Aplicaciones multi-container y entornos de desarrollo con Docker Compose para orquestar servicios. Desde comandos básicos hasta configuraciones avanzadas y CI/CD.

Verificar Versão do Docker Compose

Exibe a versão do Docker Compose instalada, útil para verificar a compatibilidade e os recursos disponíveis.

bash
docker-compose --version

Levantar Servicios (Primer Plano)

Construye, (re)crea, inicia y se adjunta a los contenedores para todos los servicios definidos en el archivo `docker-compose.yml`, ejecutando en primer plano y mostrando los logs.

bash
docker-compose up

Levantar Servicios (Segundo Plano - Detached)

Construye, (re)crea, inicia y se adjunta a los contenedores para todos los servicios definidos en el archivo `docker-compose.yml`, ejecutándose en modo `detached` (segundo plano).

bash
docker-compose up -d

Levantar Servicio Específico

Inicia solo el servicio `backend` y sus dependencias definidas en el archivo `docker-compose.yml`.

bash
docker-compose up backend

Levantar Servicios Reconstruyendo Imágenes

Construye las imágenes de los servicios antes de iniciar los contenedores, garantizando que las imágenes estén actualizadas con los últimos cambios en el `Dockerfile`.

bash
docker-compose up --build

Levantar Servicios Forzando Recreación

Recrea todos los contenedores, incluso si no hay cambios en la configuración o imagen, útil para resolver problemas o aplicar nuevas configuraciones.

bash
docker-compose up --force-recreate

Levantar Servicios Eliminando Huérfanos

Elimina containers de servicios que ya no están definidos en el archivo `docker-compose.yml` (huérfanos) al iniciar, limpiando el entorno.

bash
docker-compose up --remove-orphans

Levantar Servicio Sin Dependencias

Inicia un servicio específico sin iniciar sus dependencias, útil para probar un componente de forma aislada.

bash
docker-compose up --no-deps

Levantar Servicios con Timeout Personalizado

Define un tiempo límite de 30 segundos para el apagado graceful de los containers al detener o reiniciar los servicios durante el `up`.

bash
docker-compose up --timeout 30

Detener y Eliminar Servicios y Redes

Detiene y elimina los containers, redes y volúmenes estándar creados por `docker-compose up`.

bash
docker-compose down

Detener y Eliminar Servicios, Redes y Volúmenes

Detiene y elimina los containers, redes y también los volúmenes nombrados definidos en el archivo `docker-compose.yml` (`-v` para "volúmenes").

bash
docker-compose down -v

Solo Detener Servicios

Detiene los containers de los servicios definidos en el `docker-compose.yml`, pero no los elimina, permitiendo que sean reiniciados posteriormente con `docker-compose start`.

bash
docker-compose stop

Detener Servicio Específico

Detiene solo el contenedor del servicio `backend` definido en el `docker-compose.yml`.

bash
docker-compose stop backend

Detener y Eliminar Servicios e Imágenes

Detiene y elimina los contenedores, redes y también las imágenes creadas por los servicios (`--rmi all`), liberando más espacio en disco.

bash
docker-compose down --rmi all

Detener Servicios con Timeout Personalizado

Define un tiempo límite de 10 segundos para el apagado graceful de los contenedores al detener los servicios con `down`.

bash
docker-compose down --timeout 10

Forzar Eliminación de Contenedores

Elimina los contenedores detenidos sin pedir confirmación (`-f` para "force").

bash
docker-compose rm -f

Detener y Eliminar Servicios y Huérfanos

Detiene y elimina los contenedores, redes y también cualquier contenedor que ya no esté referenciado en el archivo `docker-compose.yml`.

bash
docker-compose down --remove-orphans

Ver Logs de Todos los Servicios

Muestra la salida de log consolidada de todos los servicios definidos en el `docker-compose.yml`.

bash
docker-compose logs

Seguir Logs de Todos los Servicios

Muestra la salida de log de todos los servicios en tiempo real, siguiendo nuevas entradas (`-f` para "follow"), manteniendo la conexión abierta.

bash
docker-compose logs -f

Ver Logs de Servicio Específico

Muestra la salida de log solo del servicio `backend`.

bash
docker-compose logs backend

Acceder Shell en Contenedor de Servicio

Ejecuta el comando `bash` dentro del contenedor del servicio `backend`, permitiendo acceso interactivo al shell del contenedor.

bash
docker-compose exec backend bash

Ejecutar Comando Específico en Contenedor de Servicio

Ejecuta un comando específico (`cargo build`) dentro del contenedor del servicio `backend`.

bash
docker-compose exec backend cargo build

Ver Últimas N Líneas de Log de Servicio

Muestra las últimas 50 líneas de log del servicio `backend`.

bash
docker-compose logs --tail 50 backend

Ver Logs de Servicio a Partir de un Período

Muestra los logs del servicio `backend` generados en la última hora.

bash
docker-compose logs --since="1h" backend

Ejecutar Comando Sin TTY

Ejecuta el comando `ls -la` dentro del contenedor del servicio `backend` sin asignar un pseudo-TTY (`-T`), útil para scripts automatizados o cuando la salida no necesita formato interactivo.

bash
docker-compose exec -T backend ls -la

Ejecutar Comando como Usuario Específico

Ejecuta el comando `bash` dentro del contenedor del servicio `backend` como el usuario `root` (`-u`), útil para tareas administrativas que requieren privilegios elevados.

bash
docker-compose exec -u root backend bash

Construir Imágenes de Todos los Servicios

Construye las imágenes para todos los servicios que tienen un `build` definido en el `docker-compose.yml`.

bash
docker-compose build

Construir Imagen de Servicio Específico

Construye la imagen solo para el servicio `backend`.

bash
docker-compose build backend

Construir Imágenes Sin Caché

Construye las imágenes de los servicios sin utilizar la caché de capas, garantizando un build limpio y desde cero, útil para resolver problemas de caché.

bash
docker-compose build --no-cache

Escalar Servicio a Múltiples Instancias

Inicia los servicios en modo `detached` y escala el servicio `backend` a 3 instancias, útil para balanceo de carga o pruebas de rendimiento.

bash
docker-compose up -d --scale backend=3

Actualizar Imágenes de Servicios (Pull)

Descarga las imágenes más recientes para todos los servicios definidos en el `docker-compose.yml` de sus respectivos repositorios.

bash
docker-compose pull

Validar Configuración de Docker Compose

Valida y muestra la configuración efectiva del `docker-compose.yml` (y archivos de override), útil para depuración de la configuración antes de iniciar los servicios.

bash
docker-compose config

Ver Estado de los Servicios

Lista todos los contenedores creados por Docker Compose, mostrando su estado, puertos y nombres, similar a `docker ps` pero enfocado en los servicios de Compose.

bash
docker-compose ps

Build de Imágenes en Paralelo

Construye las imágenes para múltiples servicios en paralelo, acelerando el proceso de build para proyectos con muchos servicios.

bash
docker-compose build --parallel

Build de Imágenes con Progreso Detallado

Construye las imágenes con una salida de progreso detallada y sin formato especial, útil para entornos CI/CD o logs.

bash
docker-compose build --progress=plain

Escalar Múltiples Servicios

Inicia los servicios y escala múltiples servicios simultáneamente, por ejemplo, `web` a 2 instancias y `db` a 1 instancia, en una única operación.

bash
docker-compose up --scale web=2 --scale db=1

Ejecutar Comando con Variable de Entorno Inline

Ejecuta un comando one-off en un nuevo contenedor del servicio `backend`, pasando una variable de entorno `VAR` con el valor `value` inline.

bash
docker-compose run --env VAR=value backend

Ejecutar Comando con Variables de Archivo .env

Ejecuta un comando one-off en un nuevo contenedor del servicio `backend`, cargando variables de entorno de un archivo `.env` específico.

bash
docker-compose run --env-file .env backend

Ver Nombres de los Servicios Configurados

Muestra solo los nombres de los servicios definidos en la configuración del `docker-compose.yml`, útil para scripts o automatización.

bash
docker-compose config --services

Levantar Servicios con Archivo .env Específico

Inicia los servicios utilizando variables de entorno definidas en un archivo `prod.env` específico, sobrescribiendo o complementando las del `.env` estándar, para diferentes entornos.

bash
docker-compose --env-file prod.env up

Ver Variables de Entorno en Nuevo Contenedor

Ejecuta el comando `env` dentro de un nuevo contenedor del servicio `backend` y lo elimina (`--rm`) después de la ejecución, para listar las variables de entorno disponibles para el servicio.

bash
docker-compose run --rm backend env

Ver Variables de Entorno en Contenedor en Ejecución

Ejecuta el comando `printenv` dentro del contenedor *en ejecución* del servicio `backend` para listar sus variables de entorno.

bash
docker-compose exec backend printenv

Levantar Servicios con Nombre de Proyecto Personalizado

Inicia los servicios bajo un nombre de proyecto específico (`--project-name proyecto`), lo que afecta los nombres de los contenedores, redes y volúmenes creados, útil para aislar entornos.

bash
docker-compose --project-name projeto up

Levantar Servicios con Driver de Volumen Específico

Inicia los servicios en modo `detached`, especificando el driver de volumen `local` para volúmenes definidos en los servicios. Generalmente, el driver se configura directamente en el `docker-compose.yml`.

bash
docker-compose up -d --volume-driver local

Listar Contenido de Volumen en Contenedor

Ejecuta el comando `ls /data` dentro del contenedor del servicio `backend` para listar el contenido de un volumen montado en `/data`.

bash
docker-compose exec backend ls /data

Listar Contenido de Volumen Compartido en Nuevo Contenedor

Ejecuta el comando `ls /shared` en un nuevo contenedor del servicio `backend` (que se elimina después de la ejecución) para listar el contenido de un volumen compartido montado en `/shared`.

bash
docker-compose run --rm backend ls /shared

Añadir Alias de Red (Configuración vía YAML)

Este comando no añade un alias de red directamente vía `up`. Los alias de red para servicios se definen dentro de la configuración de red del servicio en el archivo `docker-compose.yml` para permitir que otros servicios lo encuentren por ese nombre.

bash
docker-compose up --network-alias web

Probar Conectividad entre Servicios

Ejecuta el comando `ping database` dentro del contenedor del servicio `backend` para probar la conectividad de red con el servicio `database`.

bash
docker-compose exec backend ping database

Eliminar Volúmenes al Detener Servicios

Detiene y elimina los contenedores, redes y todos los volúmenes nombrados definidos en el archivo `docker-compose.yml`.

bash
docker-compose down --volumes

Listar Volúmenes del Proyecto Docker Compose

Lista todos los volúmenes Docker y filtra aquellos que contienen el nombre del proyecto (`projeto`), útil para identificar volúmenes creados por Docker Compose.

bash
docker volume ls | grep projeto

Listar Redes del Proyecto Docker Compose

Lista todas las redes Docker y filtra aquellas que contienen el nombre del proyecto (`projeto`), útil para identificar redes creadas por Docker Compose.

bash
docker network ls | grep projeto

Levantar Servicio Sin Sus Dependencias

Inicia el servicio `backend` sin iniciar sus dependencias, útil para aislar y probar un único servicio.

bash
docker-compose up --no-deps backend

Recrear Servicio Sin Dependencias

Recrea los contenedores de un servicio específico sin iniciar sus dependencias, útil para forzar una recreación sin afectar a otros servicios.

bash
docker-compose up --force-recreate --no-deps

Reiniciar Servicio Específico

Reinicia el contenedor del servicio `backend`.

bash
docker-compose restart backend

Reiniciar Todos los Servicios

Reinicia todos los contenedores de los servicios definidos en el `docker-compose.yml`.

bash
docker-compose restart

Pausar Servicio Específico

Pausa el contenedor del servicio `backend`, suspendiendo sus procesos sin terminarlo.

bash
docker-compose pause backend

Despausar Servicio Específico

Despausa el contenedor del servicio `backend` que fue previamente pausado.

bash
docker-compose unpause backend

Matar Servicio Específico

Fuerza la detención inmediata del contenedor del servicio `backend` enviando una señal SIGKILL, sin esperar un apagado elegante.

bash
docker-compose kill backend

Escalar Servicio a Cero Instancias

Reduce el número de instancias del servicio `backend` a cero, deteniendo y eliminando efectivamente todos los contenedores asociados a él.

bash
docker-compose up --scale backend=0

Levantar Servicios con Archivo Compose Específico

Inicia los servicios utilizando un archivo `docker-compose` alternativo (`docker-compose.prod.yml`) en lugar del predeterminado, útil para diferentes entornos (producción, desarrollo).

bash
docker-compose -f docker-compose.prod.yml up

Levantar Servicios con Múltiples Archivos Compose

Inicia los servicios combinando las configuraciones de múltiples archivos `docker-compose`, donde el segundo archivo (`override.yml`) puede sobrescribir o extender el primero.

bash
docker-compose -f docker-compose.yml -f docker-compose.override.yml up

Levantar Servicios en Modo de Compatibilidad

Activa el modo de compatibilidad, que intenta convertir opciones de `deploy` de Compose a opciones de `run` de Docker, útil para compatibilidad con Docker Swarm.

bash
docker-compose --compatibility up

Levantar Servicios con Salida Detallada (Verbose)

Inicia los servicios y muestra una salida detallada (`--verbose`) de lo que Docker Compose está haciendo, útil para depuración de problemas de inicialización.

bash
docker-compose --verbose up

Levantar Servicios Sin Colores (No ANSI)

Inicia los servicios, deshabilitando la salida ANSI (colores) en el terminal (`--no-ansi`), útil para logs en sistemas que no interpretan códigos de color o para logs en archivos.

bash
docker-compose --no-ansi up

Levantar Servicios con Perfil Específico

Inicia los servicios que pertenecen al perfil `dev` (`--profile`), permitiendo activar/desactivar grupos de servicios con base en el entorno o propósito.

bash
docker-compose --profile dev up

Levantar Servicios con Múltiples Perfiles

Inicia los servicios que pertenecen a los perfiles `dev` Y `test`, activando múltiples grupos de servicios simultáneamente.

bash
docker-compose --profile dev --profile test up

Validar Configuración Resolviendo Variables de Entorno

Valida y muestra la configuración de `docker-compose.yml`, resolviendo y reemplazando todas las variables de entorno por sus valores actuales, útil para verificar la configuración final.

bash
docker-compose config --resolve-env-vars

Ejecutar Pruebas Automatizadas (CI/CD)

Inicia los servicios definidos en `docker-compose.test.yml` y cierra todos los demás contenedores si uno de ellos sale (`--abort-on-container-exit`), ideal para entornos de prueba automatizados donde el fallo de una prueba debe detener todo.

bash
docker-compose -f docker-compose.test.yml up --abort-on-container-exit

Entorno CI/CD con Build

Inicia los servicios definidos en `docker-compose.ci.yml`, reconstruyendo las imágenes, para un entorno de Integración Continua (CI) garantizando que el entorno esté siempre actualizado.

bash
docker-compose -f docker-compose.ci.yml up --build

Executar Testes Unitários em Container

Executa o comando `npm test` em um novo container do serviço `backend` e o remove (`--rm`) após a execução, ideal para rodar testes unitários ou de integração de forma isolada.

bash
docker-compose run --rm backend npm test

Ejecutar Lint de Código en Contenedor

Ejecuta la herramienta de lint `flake8` en un nuevo contenedor del servicio `backend` y lo elimina (`--rm`) después de la ejecución, para análisis estático de código Python.

bash
docker-compose run --rm backend flake8 .

Ejecutar Migraciones de Base de Datos

Ejecuta el comando `python manage.py migrate` en un nuevo contenedor del servicio `backend` y lo elimina (`--rm`) después de la ejecución, para aplicar migraciones de base de datos en aplicaciones Django.

bash
docker-compose run --rm backend python manage.py migrate

Recolectar Archivos Estáticos (Django)

Ejecuta el comando `python manage.py collectstatic` dentro del contenedor en ejecución del servicio `backend` para recolectar archivos estáticos en aplicaciones Django.

bash
docker-compose exec backend python manage.py collectstatic

Reciclar Entorno Docker Compose

Primero, detiene y elimina todos los servicios y sus redes (`down`), y luego los inicia nuevamente, reconstruyendo las imágenes (`up --build`), útil para un "reset" completo del entorno de desarrollo.

bash
docker-compose down && docker-compose up --build

Verificar Versión de Docker Compose V2

Muestra la versión de Docker Compose V2, que está integrada al cliente Docker (el comando `compose` es un subcomando de `docker`).

bash
docker compose version

Levantar Servicios (Docker Compose V2)

Inicia los servicios definidos en el archivo `docker-compose.yml` usando la sintaxis de la versión V2 de Docker Compose.

bash
docker compose up

Modo Watch (Docker Compose V2)

Monitorea el sistema de archivos y reinicia o reconstruye servicios automáticamente cuando se detectan cambios, útil para desarrollo local con retroalimentación instantánea.

bash
docker compose watch

Convertir a Docker Compose V2 (Alpha)

Intenta convertir un archivo `docker-compose.yml` de la versión V1 a la sintaxis de la versión V2, útil para migración. (Comando alpha, puede cambiar).

bash
docker compose alpha convert

Configuración en JSON (Docker Compose V2)

Valida y muestra la configuración efectiva de `docker-compose.yml` en formato JSON, útil para procesamiento programático o integración con otras herramientas.

bash
docker compose config --format json

Ejecutar Comando (Docker Compose V2)

Ejecuta el comando `bash` en un nuevo contenedor del servicio `backend` (V2) y lo elimina (`--rm`) después de la ejecución.

bash
docker compose run --rm backend bash

Esperar Salud de los Contenedores (Docker Compose V2)

Inicia los servicios y espera hasta que todos los contenedores estén saludables (healthcheck) antes de considerar el comando completo, útil en scripts de CI/CD para garantizar que la aplicación esté lista.

bash
docker compose up --wait

Adjuntar Logs de Dependencias (Docker Compose V2)

Inicia los servicios y se adjunta a los logs de todos los servicios, incluyendo sus dependencias, útil para observar el inicio completo de la aplicación y depurar problemas de inicialización entre servicios.

bash
docker compose up --attach dependencies

Copiar Archivos (Docker Compose V2)

Copia archivos o directorios desde dentro del contenedor del servicio `backend` a un directorio local en el host, usando la sintaxis V2 de Docker Compose.

bash
docker compose cp backend:/app ./local

Detener Servicios con Timeout (Docker Compose V2)

Detiene y elimina los servicios con un tiempo límite de 30 segundos para el apagado graceful, usando la sintaxis V2 de Docker Compose.

bash
docker compose down --timeout 30
8

🌐 Redes y Volúmenes

13 snippets

Configuración de comunicación entre containers, gestión de persistencia de datos y aislamiento de entornos de red.

Listar Redes Docker

Lista todas las redes Docker en el sistema, mostrando sus IDs, nombres, drivers y alcances, útil para entender la topología de red.

bash
docker network ls

Inspeccionar Red Docker

Muestra información detallada de bajo nivel sobre la red Docker `bridge` en formato JSON, incluyendo contenedores conectados, configuraciones de IP y opciones.

bash
docker network inspect bridge

Crear Nueva Red Docker

Crea una nueva red Docker llamada `blueprint-net` usando el driver `bridge`, permitiendo que los contenedores conectados a ella se comuniquen fácilmente por nombre.

bash
docker network create --driver bridge blueprint-net

Eliminar Red Docker

Elimina una red Docker específica. La red debe estar vacía (sin contenedores conectados) para ser eliminada.

bash
docker network rm network_name

Listar Volúmenes Docker

Lista todos los volúmenes Docker almacenados localmente, mostrando sus nombres y drivers, útil para gestionar la persistencia de datos.

bash
docker volume ls

Inspeccionar Volumen Docker

Muestra información detallada de bajo nivel sobre un volumen Docker específico en formato JSON, incluyendo su driver, punto de montaje y opciones.

bash
docker volume inspect volume_name

Eliminar Volumen Docker

Elimina un volumen Docker específico. El volumen no puede estar en uso por ningún container. Use con cautela para evitar la pérdida de datos.

bash
docker volume rm volume_name

Usar Volumen Nombrado en Container

Ejecuta un container de la imagen `alpine` y monta un volumen nombrado (`nombre_volume`) en el directorio `/data` dentro del container, garantizando la persistencia de datos.

bash
docker run -v nome_volume:/data alpine

Probar Conexión entre Containers

Ejecuta el comando `ping container2` dentro del `container1` para probar la conectividad de red entre dos containers en la misma red Docker.

bash
docker exec -it container1 ping container2

Probar Conectividad de API entre Containers

Ejecuta el comando `curl` dentro del container `frontend` para probar la accesibilidad y el estado de salud de una API en el container `backend` en el puerto `3001`.

bash
docker exec frontend curl http://backend:3001/health

Conectar Container a una Red

Conecta un container Docker existente a una red Docker específica (en este caso, la red `bridge`), permitiendo que se comunique con otros containers en esa red.

bash
docker network connect bridge container

Desconectar Contenedor de una Red

Desconecta un contenedor Docker de una red específica (en este caso, la red `bridge`), aislándolo de esa red.

bash
docker network disconnect bridge container

Crear Volumen Nombrado

Crea un nuevo volumen Docker nombrado `data`, que puede ser usado para persistir datos entre contenedores o entre el host y contenedores, independientemente del ciclo de vida del contenedor.

bash
docker volume create --name data
9

🔧 Troubleshooting

14 snippets

Solución de problemas con containers, redes, instalación de Docker o rendimiento. Comandos para verificar estado y diagnosticar problemas comunes.

Verificar Instalación de Docker

Verifica las versiones del cliente y del servidor (daemon) Docker, útil para confirmar si Docker está instalado y si el daemon está respondiendo.

bash
docker version

Estado del Servicio Docker (Linux)

Verifica el estado del servicio Docker en Linux usando `systemctl`, mostrando si el daemon está activo, en ejecución y cualquier mensaje de log reciente del sistema.

bash
systemctl status docker

Estado del Servicio Docker (Windows)

Verifica el estado del servicio Docker en Windows usando `Get-Service` (PowerShell), mostrando si el servicio está en ejecución.

bash
Get-Service docker

Añadir Usuario al Grupo Docker (Linux)

Añade el usuario actual (`$USER`) al grupo `docker` en Linux, concediendo permisos para ejecutar comandos Docker sin `sudo`. Requiere cerrar/iniciar sesión o `newgrp docker` para aplicar.

bash
sudo usermod -aG docker $USER

Aplicar Grupo Docker en el Shell Actual

Cambia el grupo primario del shell actual a `docker`, aplicando los permisos del grupo sin la necesidad de cerrar y volver a iniciar sesión. Útil después de añadir el usuario al grupo docker.

bash
newgrp docker

Ver Uso de Espacio en Disco

Muestra un resumen del uso de espacio en disco por Docker, detallando el consumo por imágenes, containers, volúmenes y caché de build, útil para diagnosticar problemas de espacio.

bash
docker system df

Limpiar TODOS los Datos Docker No Utilizados

Elimina todos los datos no utilizados por Docker, incluyendo containers detenidos, redes no utilizadas, imágenes colgantes y todas las imágenes sin etiqueta (`-a` para "all"), liberando el máximo espacio posible.

bash
docker system prune -a

Listar Redes Docker

Lista todas las redes Docker en el sistema, mostrando sus IDs, nombres, drivers y alcances, útil para diagnosticar problemas de conectividad entre containers.

bash
docker network ls

Inspeccionar Red Docker

Muestra información detallada de bajo nivel sobre la red Docker `bridge` en formato JSON, incluyendo containers conectados y configuraciones de IP, crucial para la depuración de red.

bash
docker network inspect bridge

Logs del Daemon Docker (Linux)

Muestra los logs del servicio Docker en Linux usando `journalctl`, útil para depurar problemas con el daemon Docker en sí, como fallas de inicialización o errores internos.

bash
journalctl -u docker.service

Logs de Docker (Windows Event Log)

Muestra los logs de eventos relacionados con Docker en Windows usando `Get-EventLog` (PowerShell), útil para depurar problemas en el sistema operativo o en el servicio Docker.

bash
Get-EventLog -LogName Application -Source Docker

Listar Contextos Docker

Lista todos los contextos Docker disponibles, que permiten alternar fácilmente entre diferentes hosts Docker (local, remoto, cloud), útil para verificar qué entorno está siendo el objetivo de los comandos.

bash
docker context ls

Cambiar Contexto Docker Activo

Cambia el contexto Docker activo a `my-context`, dirigiendo los comandos Docker subsiguientes al host o entorno definido en ese contexto. Esencial al trabajar con múltiples entornos Docker.

bash
docker context use my-context

Verificar Firma de Confianza de Imagen

Verifica la firma de confianza de una imagen Docker específica, garantizando que la imagen no ha sido adulterada y proviene de una fuente confiable, importante para la seguridad.

bash
docker trust inspect image:tag

Recibe los ultimos articulos en tu correo.

Follow Us: