Не удается получить доступ к сайту flask за пределами контейнера Docker - PullRequest
0 голосов
/ 14 апреля 2020

Я бегу Linux Монетный двор с Python 3.6.

Я прочитал каждую ссылку здесь, но не могу понять, что не так. Я запускаю простое приложение flask, которое прекрасно работает, когда я запускаю его локально на своей машине, но затем запускаю его с Docker Я не могу получить доступ к IP в своем браузере.

У меня есть установите приложение flask для запуска на хосте 0.0.0.0, с app.run(host='0.0.0.0').

Dockerfile:

FROM python:3.7

RUN mkdir -p /var/app

WORKDIR /var/app

COPY . /var/app

RUN pip install --upgrade pip

RUN pip install -r requirements.txt

EXPOSE 5000

CMD ["pytest", "-v", "tests/test_flask_api.py"]
# CMD ["python3", "app.py"]
CMD ["python3", "-m", "Flask", "run", "--host=0.0.0.0"]

docker -compose.yml:

web:
  build: ./app
  ports:
   - "5000:5000"
  volumes:
   - .:/code

После запуска команды docker-compose up -d для построения и запуска контейнера я запускаю команду docker inspect --format '{{ .NetworkSettings.IPAddress }}', чтобы получить IP-адрес контейнера как 172.17.0.2.

Я пытаюсь получить доступ к сайту через 172.17.0.2:5000 и localhost:5000, но оба просто зависают и не загружаются.

Наконец я набрал docker exec -it restapimma_web_1 /bin/bash, чтобы попасть в контейнер. Затем я запустил curl localhost:5000 и смог получить правильный ответ. Так что приложение flask работает внутри контейнера, я просто не могу получить к нему доступ вне контейнера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...