UD00 · Taller 1 — Verificación del entorno y primer contenedor¶
Unidad no calificable, pero requisito
El Taller 1 se entrega y se marca como hecho / no hecho: no lleva nota, pero se tiene en cuenta y es requisito para las prácticas de la UD02 (sin entorno funcionando no se puede hacer Robocode). Los viernes no hay clase: son el momento de recopilar capturas y redactar la memoria.
Objetivo: dejar Docker funcionando en tu máquina y demostrarlo con evidencias.
Entrega: una memoria en PDF con las capturas y las explicaciones de las seis fases. Se marca como hecho / no hecho.
Fase 1 — Instala Docker y demuéstralo¶
- Instala Docker en tu equipo siguiendo el apartado 5.2 de la teoría (Ubuntu o Docker Desktop, según tu sistema).
- Ejecuta y captura la salida de:
1 2 | |
El error más común del primer día
Si aparece permission denied while trying to connect to the Docker daemon socket, te falta añadir tu usuario al grupo docker y cerrar y volver a abrir la sesión. Explica en la memoria por qué hace falta reiniciar la sesión.
Fase 2 — Primer contenedor interactivo¶
1 | |
Dentro del contenedor:
1 2 3 | |
Comprueba que el contenedor sigue existiendo aunque esté parado, y vuelve a entrar:
1 2 3 | |
En la memoria: explica la diferencia entre docker run, docker start y docker attach.
Fase 3 — Un servicio en segundo plano¶
1 2 | |
Abre http://localhost:8080 y captura la página de bienvenida. Después inventaría lo que llevas acumulado:
1 2 | |
Fase 4 — El mismo código en dos versiones de Python¶
Esta fase reproduce el caso del apartado 6.5 con tus propias manos:
1 2 3 4 5 6 7 | |
Captura las dos salidas y responde en la memoria:
- ¿Qué error exacto da el contenedor B y por qué?
- ¿Qué versión de
expertase ha instalado en cada caso? ¿Y defrozendict? - Si tuvieras que entregar hoy un proyecto con
experta, ¿qué imagen base elegirías y por qué?
Fase 5 — Elige una imagen y escribe su Compose¶
- Elige una imagen del anexo B de la teoría (o cualquiera de Docker Hub).
- Comprueba que está mantenida: mira la fecha de la última actualización.
- Escribe su
docker-compose.ymlcon puertos y, si lo necesita, un volumen para sus datos. - Levántalo con
docker compose up -dy captura el servicio funcionando en el navegador.
Fase 6 — Volúmenes y limpieza¶
Crea en tu equipo una carpeta practicas con un app.py:
1 | |
Ejecútala sin instalar Python en el host:
1 2 | |
Y deja la máquina limpia:
1 2 3 4 | |
Entrega del Taller 1¶
Recopila las capturas y las explicaciones de las seis fases en una memoria en PDF. Se valora que expliques lo que ocurre, no solo que pegues pantallazos: una captura sin explicación no demuestra que hayas entendido nada.
| Fase | Evidencia mínima |
|---|---|
| 1 | docker run hello-world correcto |
| 2 | Contenedor interactivo, con la versión de Python impresa desde dentro |
| 3 | nginx respondiendo en el navegador + inventario de imágenes y contenedores |
| 4 | Las dos salidas del caso experta y el error del contenedor B |
| 5 | docker-compose.yml propio y su servicio funcionando |
| 6 | La app del host ejecutada en el contenedor y la máquina limpia |
Nota sobre la tabla anterior.
Soluciones
Las soluciones no se publican: se corrigen y comentan en clase.