Conceptos 04 - Comandos esenciales del módulo práctico
Resumen de los comandos que encontrará en los ejercicios prácticos del módulo, organizados por función. Seleccione cualquier comando de un grupo para ver un ejemplo de uso en terminal.
Concepto 1 de 8
Gestión de imágenes
Descargar, construir, listar y eliminar las imágenes locales a partir de las cuales se crean los contenedores.
Descarga una imagen desde un registry.
docker pull nginx:alpinealpine: Pulling from library/nginxStatus: Downloaded newer image for nginx:alpine
Opcional si va a usar docker run, ya que este descarga la imagen automáticamente cuando no existe localmente.
Construye una imagen a partir de un Dockerfile en el directorio actual.
docker build -t myapp:1.0 .[+] Building 8.2s (10/10) FINISHED=> [1/4] FROM node:20-alpine=> [2/4] WORKDIR /app=> [3/4] COPY package*.json ./=> [4/4] COPY . .=> exporting to image
La flag -t asigna nombre y tag a la imagen. El punto final indica el contexto de build, que es el directorio donde está el Dockerfile.
Lista las imágenes disponibles en el sistema local.
docker imagesREPOSITORY TAG IMAGE ID SIZEmyapp 1.0 a1b2c3d4e5f6 180MBnginx alpine f7a8b9c0d1e2 43MB
Elimina una imagen local.
docker rmi myapp:1.0Untagged: myapp:1.0Deleted: sha256:a1b2c3d4...
No puede eliminar imágenes en uso por algún contenedor. Detenga y elimine el contenedor primero.
Concepto 2 de 8
Ejecución de contenedores
Crear e iniciar contenedores con docker run y combinar sus flags más usadas.
Crea e inicia un contenedor. Descarga la imagen si no existe localmente.
docker run nginx:alpine/docker-entrypoint.sh: Configuration complete2025/01/15 ready for connections
Ejecuta en primer plano. Ctrl+C detiene el contenedor.
Inicia el contenedor en modo desacoplado, en segundo plano.
docker run -d nginx:alpinea3f7c9e2b1d0...
Devuelve el ID del contenedor. Use docker logs para consultar la salida.
Publica un puerto del contenedor en el host.
docker run -d -p 8080:80 nginx:alpined5f6a7b8c9e0...curl http://localhost:8080Welcome to nginx!
Formato puerto_host:puerto_contenedor. El puerto 80 interno queda accesible en el 8080 del host.
Asigna un nombre específico al contenedor.
docker run -d --name web -p 8080:80 nginx:alpineb8e2a1c3d4f5...
Concepto 3 de 8
Inspección y monitoreo
Consultar qué contenedores existen, qué escriben en su salida y cómo están configurados.
Lista los contenedores en ejecución.
docker psCONTAINER ID IMAGE STATUS PORTS NAMESb8e2a1c3d4f5 nginx:alpine Up 2 min 0.0.0.0:8080->80/tcp web
Incluye contenedores detenidos y finalizados.
docker ps -aCONTAINER ID IMAGE STATUS NAMESb8e2a1c3d4f5 nginx:alpine Up 5 min webc9d0e1f2a3b4 ubuntu:24.04 Exited (0) 3 min ago sharp_turing
Muestra la salida estándar y de error del contenedor.
docker logs web172.17.0.1 - GET / 200172.17.0.1 - GET /favicon.ico 404
Agregue -f para seguir los logs en tiempo real.
Devuelve información detallada del contenedor en formato JSON.
docker inspect -f '{{.NetworkSettings.IPAddress}}' web172.17.0.2
La flag -f acepta plantillas Go para extraer campos específicos.
Concepto 4 de 8
Control del ciclo de vida
Detener, iniciar, reiniciar y eliminar contenedores que ya existen.
Detiene el contenedor de forma controlada.
docker stop webweb
Envía SIGTERM y espera 10 segundos antes de SIGKILL.
Inicia un contenedor previamente detenido.
docker start webweb
Detiene e inicia el contenedor en una sola operación.
docker restart webweb
Elimina un contenedor detenido.
docker rm webweb
Precaución. Use -f para forzar la eliminación de un contenedor en ejecución. Los datos no persistidos en volúmenes se pierden.
Prueba las órdenes en cualquier orden y observa el estado del contenedor web. Algunas no son válidas en ciertos estados: la terminal muestra el error que devolvería Docker.
- No existeSolo está la imagen
- En ejecuciónSTATUS: Up
- DetenidoSTATUS: Exited
El contenedor web todavía no existe. Empieza con docker run.
Concepto 5 de 8
Interacción
Entrar a un contenedor en ejecución o conectarse a su proceso principal.
Abre una terminal interactiva dentro del contenedor.
docker exec -it web sh/ # ls /usr/share/nginx/html50x.html index.html/ # exit
En imágenes Alpine use sh. En Ubuntu o Debian, bash. Al salir con exit, el contenedor sigue activo.
Conecta la terminal a la salida estándar del contenedor.
docker attach web172.17.0.1 - GET / 200▲ Ctrl+P, Ctrl+Q para desconectar sin detener
Concepto 6 de 8
Limpieza del sistema
Medir el uso de disco y recuperar espacio eliminando recursos sin uso.
Muestra el uso de disco por tipo de recurso Docker.
docker system dfTYPE TOTAL ACTIVE SIZE RECLAIMABLEImages 5 2 1.2GB 820MB (68%)Containers 3 1 12.5MB 10MB (80%)Volumes 2 1 256MB 128MB (50%)
Elimina contenedores detenidos, redes huérfanas e imágenes sin uso.
docker system pruneWARNING! This will remove:- all stopped containers- all networks not used by containers- all dangling imagesTotal reclaimed space: 830MB
Precaución. Operación destructiva. Revise con docker system df antes de ejecutar. Agregue -a para incluir imágenes no referenciadas por ningún contenedor.
Elimina todos los contenedores detenidos.
docker container pruneDeleted Containers:c9d0e1f2a3b4...Total reclaimed space: 10MB
Elimina imágenes huérfanas (dangling).
docker image pruneDeleted Images:deleted: sha256:a1b2c3d4...Total reclaimed space: 420MB
Concepto 7 de 8
Redes y volúmenes
Listar y crear redes para comunicar contenedores, y volúmenes para persistir datos.
Lista las redes disponibles en Docker.
docker network lsNETWORK ID NAME DRIVER SCOPEa1b2c3d4e5f6 bridge bridge localf7a8b9c0d1e2 host host locald3e4f5a6b7c8 none null local
Crea una red personalizada para conectar contenedores.
docker network create mynete5f6a7b8c9d0...
Los contenedores en la misma red pueden comunicarse usando sus nombres como hostname.
Lista los volúmenes gestionados por Docker.
docker volume lsDRIVER VOLUME NAMElocal pgdata
Crea un volumen nombrado para persistencia de datos.
docker volume create pgdatapgdata
Los volúmenes sobreviven al ciclo de vida del contenedor. Monte con docker run -v pgdata:/data.
Concepto 8 de 8
Flujo mínimo completo
Secuencia completa que cubre el ciclo de trabajo práctico del módulo.
Recorre la secuencia build → run → ps → logs → exec → stop → rm paso a paso y observa cómo cambian la imagen, el contenedor y el puerto.
$ docker build -t app .
[+] Building 8.2s (10/10) FINISHED
=> exporting to image
=> naming to docker.io/library/app
Construye la imagen app a partir del Dockerfile del directorio actual.
- Imagen app
- Construida
- Contenedor web
- No existe
- Puerto 8080 del host
- Libre
La secuencia completa en un solo bloque:
# 1. Construir la imagen$ docker build -t app .
# 2. Ejecutar el contenedor$ docker run -d -p 8080:80 --name web app
# 3. Verificar estado$ docker ps
# 4. Consultar logs$ docker logs web
# 5. Inspeccionar internamente$ docker exec -it web sh
# 6. Detener el contenedor$ docker stop web
# 7. Eliminar el contenedor$ docker rm webAutoevaluación
Comprueba lo que aprendiste
Cinco preguntas rápidas para verificar las ideas clave de la lectura. Cada respuesta incluye una explicación.
0/5 respuestas correctas