Comandos importantes de Docker¶
Docker es una plataforma de contenedores que permite empaquetar aplicaciones con sus dependencias en unidades ligeras y portátiles. A continuación se presentan los comandos fundamentales para la gestión de contenedores e imágenes.
# Muestra los contenedores que están actualmente en ejecución
docker ps
# Arranca un contenedor en segundo plano (modo detached)
# -d: ejecuta el contenedor en segundo plano
# --name <nombre>: asigna un nombre personalizado al contenedor
# -p <host>:<contenedor>: mapea un puerto del host a un puerto del contenedor
# <imagen>: especifica la imagen base a utilizar
docker run -d --name <nombre> -p <host>:<contenedor> <imagen>
# Detiene un contenedor en ejecución identificado por su nombre o ID
docker stop <nombre>
# Elimina un contenedor detenido del sistema
docker rm <nombre>
# Muestra todas las imágenes disponibles localmente en el host
docker images
# Ingresa a un contenedor de forma interactiva y lo elimina al salir
# --rm: elimina el contenedor automáticamente al finalizar la sesión
# -it: modo interactivo con terminal
# <image>: imagen base del contenedor
# <comando>: comando a ejecutar al iniciar (por ejemplo, /bin/bash)
docker run --rm -it <image> <comando>
Ejemplos¶
# 1. Ver contenedores en ejecución
docker ps
# 2. Ejecutar un contenedor de Nginx en segundo plano
# -d: modo detached (segundo plano)
# --name mi-nginx: nombre del contenedor
# -p 8080:80: mapea el puerto 8080 del host al puerto 80 del contenedor
# nginx:latest: imagen oficial de Nginx
docker run -d --name mi-nginx -p 8080:80 nginx:latest
# 3. Detener el contenedor llamado "mi-nginx"
docker stop mi-nginx
# 4. Eliminar el contenedor "mi-nginx" (debe estar detenido)
docker rm mi-nginx
# 5. Ver todas las imágenes disponibles localmente
docker images
# 6. Ingresar a un contenedor interactivo de Ubuntu y eliminarlo al salir
# --rm: elimina el contenedor al salir
# -it: modo interactivo con terminal
# ubuntu:latest: imagen base de Ubuntu
# /bin/bash: comando para abrir una shell bash
docker run --rm -it ubuntu:latest /bin/bash
# 7. Ejecutar un contenedor de Alpine Linux y ejecutar un comando simple
# alpine:latest: imagen ligera de Alpine Linux
# echo "Hola desde Alpine": comando a ejecutar
docker run --rm alpine:latest echo "Hola desde Alpine"
# 8. Listar todos los contenedores (incluyendo los detenidos)
docker ps -a
# 9. Forzar la eliminación de un contenedor en ejecución
docker rm -f mi-nginx
# 10. Descargar una imagen sin ejecutarla
docker pull python:3.9-slim
Explicación de los ejemplos:
- Ejemplo 2: Crea un servidor web Nginx accesible desde
http://localhost:8080. - Ejemplo 6: Abre una terminal interactiva dentro de un contenedor Ubuntu; al escribir
exitel contenedor se elimina automáticamente. - Ejemplo 7: Ejecuta un comando simple y el contenedor termina inmediatamente después.
- Ejemplo 10: Descarga la imagen de Python 3.9 slim para usarla posteriormente sin ejecutarla de inmediato.
Tabla de resumen de conceptos¶
| Comando | Función | Comentarios adicionales |
|---|---|---|
docker ps |
Lista los contenedores en ejecución. | Usar docker ps -a para ver también contenedores detenidos. |
docker run -d --name <nombre> -p <host>:<contenedor> <imagen> |
Crea e inicia un contenedor en segundo plano con mapeo de puertos. | El flag -d permite que el contenedor corra en segundo plano sin bloquear la terminal. |
docker stop <nombre> |
Detiene un contenedor en ejecución de forma graceful. | Envía señal SIGTERM primero; si no responde, envía SIGKILL tras un tiempo de espera. |
docker rm <nombre> |
Elimina un contenedor detenido del sistema. | No se puede eliminar un contenedor en ejecución sin antes detenerlo o usar -f. |
docker images |
Muestra las imágenes descargadas localmente. | Las imágenes son plantillas de solo lectura que se usan para crear contenedores. |
docker run --rm -it <image> <comando> |
Inicia un contenedor interactivo que se elimina al salir. | El flag --rm evita la acumulación de contenedores temporales; útil para pruebas rápidas. |
| Concepto: Contenedor | Unidad ejecutable ligera que encapsula una aplicación y sus dependencias. | Aísla procesos del host anfitrión, pero comparte el kernel del sistema operativo. |
| Concepto: Imagen | Plantilla inmutable que define el sistema de archivos y la configuración de un contenedor. | Se construye a partir de un Dockerfile y se almacena en un registro como Docker Hub. |
| Concepto: Mapeo de puertos (-p) | Redirige el tráfico de un puerto del host a un puerto del contenedor. | Permite acceder a servicios dentro del contenedor desde el exterior. |
| Concepto: Modo interactivo (-it) | Conecta la terminal del host con la entrada/salida estándar del contenedor. | Necesario para ejecutar shells o comandos que requieren interacción del usuario. |
| # Recursos |