0% encontró este documento útil (0 votos)
4 vistas4 páginas

Docker: Creación y Ejecución de Imágenes

Cargado por

alex gadea
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas4 páginas

Docker: Creación y Ejecución de Imágenes

Cargado por

alex gadea
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Sistemas Operativos - Trabajo Práctico 4

Objetivos de aprendizaje
• Entender conceptos clave de Docker
• Leer y aplicar documentación oficial
• Construir y levantar una imagen de Docker con una aplicación

Documentación disponible
Concepto Documentación
Docker y contenerización [Link]
Referencia de Dockerfile [Link]
Creación de imágenes [Link]
Optimización de contenedores [Link]
Administración de volúmenes [Link]
Ejecución de contenedores [Link]

Entregables
• Respuestas a todas las preguntas de la Parte A (con referencias a la documentación).
• Un Dockerfile funcional para la aplicación con us .dockerignore.
• Captura de pantalla que muestra el resultado de una ejecución exitosa de Docker y la
respuesta de la API.
Parte A – Teórico: Preguntas conceptuales
Contesta brevemente con tus propias palabras.

1. Contenedores e Imágenes
a) ¿Qué es un contenedor, y cómo se diferencia de una máquina virtual?
b) ¿Qué es una imagen de Docker, y cómo se relaciona con un contenedor?

2. Construcción Imágenes
a) ¿Qué es un Dockerfile y qué sucede al ejecutar docker build?
b) ¿Por qué los Dockerfiles suelen partir de imágenes base pequeñas como python:3.12-slim?
c) ¿Cuál es la utilidad del archivo .dockerignore?

3. Configuración y ejecución de contenedores


a) ¿Qué hacen las instrucciones WORKDIR y COPY?
b) ¿En qué difieren las instrucciones RUN y CMD?
c) ¿Cómo se pueden ver los contenedores en ejecución y detener uno?
Parte B – Práctico: Levantar una aplicación en Docker
Primer paso: crear los archivos del proyecto
Clonar el repositorio con el comando

git clone '[Link]

Se deberían obtener estos archivos:


app/[Link]:

from fastapi import FastAPI


import os

app = FastAPI()

APP_MESSAGE = [Link]("APP_MESSAGE", "Hello from Dockerized FastAPI!")


DATA_DIR = [Link]("DATA_DIR", "/data")

@[Link]("/")
def root():
return {"message": APP_MESSAGE, "data_dir": DATA_DIR}

[Link]:

fastapi==0.115.*
uvicorn==0.30.*

Segundo paso: escribir el Dockerfile y .dockerignore


La estructura final del proyecto debe ser:

fastapi-docker-activity/
├─ app/
│ └─ [Link]
├─ .dockerignore
├─ Dockerfile
└─ [Link]

El archivo Dockerfile debe incluir en orden lógico las instrucciones:


• FROM
• ENV – define solo las variables especificas de la aplicación
• RUN
• WORKDIR
• COPY
• VOLUME
• EXPOSE
• CMD

El archivo .dockerignore se debe configurar para que en el contenedor no haya ninguna


referencia a repositorios Git.
Para ejecutar aplicaciones en FastAPI se debería utilizar el comando

uvicorn '[Link]:app' --host '[Link]' --port '8080'

Tercer paso: compilar y ejecutar


Para compilar la imagen utiliza el comando

docker build -t demo .

Para ejecutar la imagen utiliza el comando

docker run -p 8000:8000 -e APP_MESSAGE="¡Bienvenido, estudiante de Docker!" demo

Para llamar a la API visita [Link] o corre el comando

curl [Link]

También podría gustarte