Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

876
Vistas
Debo ejecutar python FastAPI localmente, pero cuando intento ejecutar a través del contenedor, no obtengo ninguna respuesta en el navegador. No hay error también

Puedo ejecutar python FastAPI localmente (conectándome al host local http://127.0.0.1:8000/ ), pero cuando intento ejecutar a través del contenedor, no obtengo ninguna respuesta en el navegador. Tampoco hay mensaje de error.

contenido de main.py

 from typing import Optional from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"Hello": "World"} @app.get("/items/{item_id}") def read_item(item_id: int, q: Optional[str] = None): return {"item_id": item_id, "q": q}

contenido de Dockerfile

 FROM python:3.9.5 WORKDIR /code COPY ./docker_req.txt /code/docker_req.txt RUN pip install --no-cache-dir --upgrade -r /code/docker_req.txt COPY ./app /code/app CMD ["uvicorn", "app.main:app", "--reload", "--host", "0.0.0.0"]

salida en cmd cuando se ejecuta el contenedor: -

 docker run --name my-app1 python-fastapi:1.5 INFO: Will watch for changes in these directories: ['/code'] INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) INFO: Started reloader process [1] using statreload INFO: Started server process [7] INFO: Waiting for application startup. INFO: Application startup complete.

docker_req.txt --

 fastapi==0.73.0 pydantic==1.9.0 uvicorn==0.17.4
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Inserte -d antes de ejecutar Docker para ejecutar su contenedor en modo Separado. intenta ejecutar:

docker run -d --name my-app5 -p 8000:8000 python-fastapi:1.5

over 4 years ago · Santiago Trujillo Denunciar

0

Más simple: puede redirigir el puerto local 8000 al puerto acoplable 8000

 docker run -p 8000:8000 ...

y ahora puedes acceder a él usando uno de

  • http://0.0.0.0:8000
  • http://localhost:8000
  • http://127.0.0.1:8000

Más tiempo: puede exponer el puerto 8000 y ejecutarlo usando IP ventana acoplable

 docker run --expose 8000 ...

o en Dockerfile puede usar EXPOSE 8000

A continuación, debe encontrar Container ID

 docker ps
 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0e7c6c543246 furas/fastapi "uvicorn app.main:ap…" 3 seconds ago Up 2 seconds 8000/tcp stupefied_nash

o

 docker ps -q
 0e7c6c543246

Y use (parte de) CONTAINER ID para obtener la dirección IP del contenedor

 docker inspect 0e7c | grep IPAddress
 "SecondaryIPAddresses": null, "IPAddress": "172.17.0.2", "IPAddress": "172.17.0.2",

o

 docker inspect --format '{{ .NetworkSettings.IPAddress }}' 0e7c
 172.17.0.2

Y ahora puedes acceder a él usando

  • http://172.17.0.2:8000

EDITAR:

En una línea (en Bash)

 docker inspect --format '{{ .NetworkSettings.IPAddress }}' $(docker ps -q)
 172.17.0.2
over 4 years ago · Santiago Trujillo Denunciar

0

Resolví este problema creando un archivo yaml y ejecutándolo a través de docker-compose

 version: '3' services: my-app: image: python-fastapi:1.5 ports: - 8000:8000

En el archivo yaml, también probé sin puertos y todavía funcionó, mientras que el siguiente comando de ejecución de la ventana acoplable no funciona

 docker run --name my-app5 -p 8000:8000 python-fastapi:1.5

¿Alguien puede explicar por qué no funciona desde el comando "docker run" sino desde el archivo yaml?

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda