LABS · JULIÁN LÓPEZ JIMÉNEZ · RECURSO GRATUITO
Distingue un contenedor parado, un puerto mal usado y un proceso que termina. Sigue una comprobación ordenada con un laboratorio local.
Qué necesitas: Docker Engine en ejecución, contenedores Linux, acceso a Internet para descargar nginx:stable-alpine y un navegador. Los comandos de una línea funcionan en Bash y PowerShell. Necesitas tener libres los nombres de contenedores y el puerto 18080.
Tu resultado: Una web accesible solo desde tu equipo y una checklist para investigar su estado, logs y publicación de puertos.
docker --version comprueba el cliente, pero no demuestra que el motor esté disponible. docker version debe mostrar también Server. Si no puede conectar, inicia Docker y resuelve ese problema primero. No cambies permisos de archivos ni uses privilegios extra por ensayo.
docker --version
docker version
docker ps -aComprueba: La información incluye Client y Server. Si aparece un error del daemon, todavía no tiene sentido investigar el puerto de una aplicación que no puede arrancar.
Usa un nombre nuevo. Si ya existe labs-web-gratis, no lo borres: elige otro y sustituye el nombre en todas las órdenes. El enlace 127.0.0.1 limita el puerto publicado a tu propio equipo. La imagen se descarga de un registro externo. Su versión stable puede cambiar; esta práctica no es una configuración para producción.
docker run -d --name labs-web-gratis -p 127.0.0.1:18080:80 nginx:stable-alpine
docker ps --filter name=labs-web-gratis
docker port labs-web-gratisComprueba: El contenedor figura como activo y el puerto 80/tcp se publica en 127.0.0.1:18080. Abre http://127.0.0.1:18080 en el navegador: debe aparecer la bienvenida de nginx. El 80 es el puerto interno; el 18080 es el que usas desde el equipo.
Detén únicamente el contenedor de esta práctica. Una página que ya estaba cargada puede seguir visible: recarga y comprueba el estado con Docker. ps sin -a no muestra contenedores parados. Los logs históricos no prueban que el proceso siga ejecutándose.
docker stop labs-web-gratis
docker ps --filter name=labs-web-gratis
docker ps -a --filter name=labs-web-gratis
docker logs --tail 20 labs-web-gratis
docker inspect --format '{{.State.Status}}' labs-web-gratisComprueba: ps no lo lista como activo; ps -a muestra Exited y inspect devuelve exited. Los logs pueden seguir incluyendo peticiones anteriores.
start vuelve a ejecutar el mismo contenedor. Los datos de esta práctica no necesitan volúmenes, pero una base de datos real sí exigiría revisar persistencia y copias antes de reemplazar contenedores.
docker start labs-web-gratis
docker port labs-web-gratis
docker logs --tail 10 labs-web-gratisComprueba: Tras el arranque, recarga http://127.0.0.1:18080. Volver a ver la página y confirmar el estado activo son evidencias distintas que conviene reunir juntas.
Primero motor; después estado del contenedor; luego logs, publicación del puerto y respuesta de la aplicación. Si está activo pero no responde, confirma la URL y el mapeo antes de recrearlo. Un conflicto de puerto exige elegir otro puerto libre en un contenedor nuevo: start no cambia la publicación de uno existente.
docker inspect --format '{{.State.Status}}' labs-web-gratis
docker port labs-web-gratis
docker logs --tail 20 labs-web-gratisComprueba: Puedes explicar qué comprobación demuestra cada comando y por qué «está activo» no garantiza por sí solo una respuesta HTTP correcta.
Predice el estado de un contenedor que ejecuta una sola orden y termina. Usa un nombre que no exista. ¿Tiene sentido publicar un puerto para ese proceso?
docker run --name labs-proceso-gratis nginx:stable-alpine nginx -v
docker ps -a --filter name=labs-proceso-gratis
docker logs labs-proceso-gratisnginx -v muestra la versión y finaliza; por eso ese contenedor aparece como Exited aunque haya terminado correctamente. No es un servidor web en ejecución. Al acabar, puedes limpiar solo los contenedores creados por ti: docker stop labs-web-gratis y después docker rm labs-web-gratis labs-proceso-gratis. No uses comandos de limpieza global para esta práctica.
Repite con datos distintos antes de marcarlo como practicado. Esta es una autoevaluación, no una certificación.
En De Cero a Docker practicarás imágenes, redes, Compose, persistencia y recuperación de PostgreSQL. Este laboratorio no incluye bases de datos ni requiere comprar el curso.
Consultar el curso y su temarioFuente: Recurso original de Labs. Puedes guardar este HTML, abrirlo sin conexión o imprimirlo como PDF desde tu navegador. No guarda tus respuestas ni el progreso de tu cuenta.