我正在嘗試從本地主機上的Docker compose 入門教程訪問 Flask 應用程式,但不更改此修剪后的 Dockerfile:
# syntax=docker/dockerfile:1
FROM python:3.9-alpine
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
如果我的 docker-compose.yml:
version: "3.9"
services:
web:
build: .
command: flask run
volumes:
- type: bind
source: .
target: /code
environment:
- ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
ports:
- target: 5000
published: 8000
networks:
- counter-net
redis:
image: "redis:alpine"
networks:
- counter-net
networks:
counter-net:
volumes:
volume-net:
當我使用 docker compose up 時,我可以看到:Running on http://127.0.0.1:5000但我無法在 Running on 127.0.0.1:8000 或 localhost:8000 上訪問它
當我列出網路時,我可以看到 2_counter-net,如果之前相關,我嘗試創建一個卷,但是當我將源更改為 . 它沒有錯誤地出現。
請問如何更正我的配置?
uj5u.com熱心網友回復:
您正在嘗試使用橋接網路,以便將容器中打開的埠轉發到主機上的埠。確實,您可以洗掉用戶定義的網路并僅依賴默認的橋接網路(通過從 YAML 檔案中洗掉所有“網路”部分)。那應該可以解決您的問題。但是,Docker 不建議將這種方法用于生產。
另一種選擇是將網橋驅動程式添加到用戶定義的網路規范中:
networks:
counter-net:
driver: bridge
大衛是對的,你應該在你的環境中修復 YAML。
environment:
- FLASK_APP=app.py
- FLASK_RUN_HOST=0.0.0.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/517783.html
上一篇:如何使用flask和mongoengine查找具有給定ID的任何用戶是否存在于陣列陣列中?
下一篇:python-如何根據自己在PythonPandas中的排序思想按字串列對具有重復值的DataFrame進行排序?
