4. Operar Docker
Temas del programa: 4.1.2
Observar antes de modificar
¿Qué es docker ps?
Section titled “¿Qué es docker ps?”docker psMuestra los contenedores que están ejecutándose
Ejemplo de salida ilustrativa
CONTAINER ID IMAGE COMMAND STATUSa13c9e7d2b10 nginx:alpine "/docker-entrypoint…" Up 2 minutes
PORTS NAMES127.0.0.1:8080->80/tcp webLos identificadores y tiempos son ficticios
¿Qué información muestra?
Section titled “¿Qué información muestra?”| Columna | Significado |
|---|---|
CONTAINER ID | Identificador abreviado |
IMAGE | Imagen utilizada |
COMMAND | Comando configurado |
STATUS | Estado actual |
PORTS | Puertos publicados o expuestos |
NAMES | Nombre asignado al contenedor |
El nombre puede facilitar la administración sin tener que copiar el ID
¿Y los contenedores detenidos?
Section titled “¿Y los contenedores detenidos?”docker ps -aEjemplo de salida ilustrativa
CONTAINER ID IMAGE STATUS NAMESa13c9e7d2b10 nginx:alpine Up 2 minutes webb51f0c8a8e90 hello-world Exited (0) 5 minutes ago hopeful_morsedocker ps muestra los contenedores activos
docker ps -a incluye también los contenedores detenidos y terminados
¿Qué imágenes tengo?
Section titled “¿Qué imágenes tengo?”docker imagesEjemplo de salida ilustrativa
REPOSITORY TAG IMAGE ID CREATED SIZEnginx alpine 91ca84b4e7d1 2 weeks ago 48MBhello-world latest 74cc54e27dc4 3 months ago 10kBLos identificadores tamaños y fechas son ejemplos
Una imagen puede existir localmente aunque no haya ningún contenedor ejecutándose con ella
Comandos para obtener imágenes
Section titled “Comandos para obtener imágenes”docker pull nginx:alpineDescarga una imagen desde un registry
docker image lsLista las imágenes locales
docker image inspect nginx:alpineMuestra metadatos de una imagen
docker image rm nginx:alpineElimina una referencia de imagen local cuando no existan dependencias que impidan hacerlo
Ejecutar un servidor web
Section titled “Ejecutar un servidor web”docker run -d \ --name web \ -p 127.0.0.1:8080:80 \ nginx:alpineAhora podemos consultar
docker psY abrir en el navegador
http://localhost:8080Si el puerto está ocupado o Docker no está disponible el resultado será diferente
¿Qué significa -d?
Section titled “¿Qué significa -d?”docker run -d nginx:alpineLa opción -d solicita ejecutar el contenedor en segundo plano
Sin ella la terminal puede permanecer conectada al proceso o mostrar directamente su salida
El comportamiento exacto también depende del programa ejecutado y de cómo maneja la entrada y salida estándar
¿Cómo consultamos los registros?
Section titled “¿Cómo consultamos los registros?”docker logs webPara seguir la salida conforme aparecen nuevas líneas
docker logs -f webPara limitar la cantidad inicial de líneas
docker logs --tail 50 webLos registros ayudan a entender qué hizo el proceso y por qué pudo fallar
No todos los programas envían automáticamente todos sus registros a la salida estándar
¿Cómo entramos a un contenedor?
Section titled “¿Cómo entramos a un contenedor?”docker exec -it web shDescomposición
docker execEjecuta un proceso en un contenedor existente
-itPermite interactuar desde la terminal
webNombre del contenedor
shIntérprete de comandos solicitadoNo todas las imágenes incluyen bash
Las imágenes mínimas pueden proporcionar solamente sh u otras herramientas reducidas
¿Qué podemos observar dentro?
Section titled “¿Qué podemos observar dentro?”pwdls -lahpsLos comandos disponibles dependen de la imagen
Al salir de la terminal
exitnormalmente termina la sesión interactiva pero no necesariamente el proceso principal del contenedor
Inspeccionar un contenedor
Section titled “Inspeccionar un contenedor”docker inspect webPermite consultar información estructurada como
- Configuración de ejecución
- Direcciones de red
- Montajes
- Estado del contenedor
- Imagen de origen
- Configuración de puertos
Para obtener solo algunos campos se puede utilizar el formato de salida de Docker
docker inspect --format '{{.State.Status}}' webSalida ilustrativa
running¿Qué recursos consume?
Section titled “¿Qué recursos consume?”docker statsMuestra información dinámica sobre el consumo de recursos de los contenedores
Ejemplo ilustrativo
CONTAINER CPU % MEM USAGE / LIMIT MEM %web 0.10% 12MiB / 2GiB 0.59%Los valores dependen de la aplicación del host y de los límites configurados
Detener iniciar y eliminar
Section titled “Detener iniciar y eliminar”docker stop webSolicita detener el contenedor
docker start webInicia un contenedor existente que está detenido
docker rm webElimina el contenedor detenido
docker image rm nginx:alpineElimina la imagen local si Docker permite retirarla
Detener un contenedor no es lo mismo que eliminarlo y eliminar un contenedor no equivale a eliminar la imagen
El ciclo de vida
Section titled “El ciclo de vida” IMAGEN │ ▼ CREAR CONTENEDOR │ ▼ CONTENEDOR │ ▼ EJECUTAR PROCESO │ │ stop termina │ │ ▼ ▼ DETENIDO EXITED │ ▼ startUn contenedor detenido puede volver a iniciarse si su configuración lo permite
Un contenedor eliminado debe crearse nuevamente a partir de una imagen
¿Cómo se relacionan run y create?
Section titled “¿Cómo se relacionan run y create?”docker create --name web nginx:alpineCrea el contenedor sin iniciar el proceso principal
docker start webInicia el contenedor creado
En cambio
docker run --name web nginx:alpinees una forma abreviada de solicitar la creación y ejecución del contenedor
Relación con el laboratorio
Section titled “Relación con el laboratorio”Este tema se practica en el Laboratorio 1 — Primeros contenedores.
Qué sigue
Section titled “Qué sigue”Continúa con 5. Linux básico para trabajar con contenedores.

