Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

874
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!