Docker compose:无法从localhost访问Flask



我正试图从本地主机的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时,我可以看到:正在运行http://127.0.0.1:5000但我无法在127.0.0.1:8000或localhost:8000 上运行时访问它

当我列出网络时,我可以看到2_counternet,如果相关的话,我之前尝试创建一个卷,但在将源更改为时删除了它。它没有出错。

我该如何更正我的配置?

您正在尝试使用桥接网络,以便在容器中打开的端口可以转发到主机上的端口。的确,您可以删除用户定义的网络,只依赖默认的网桥网络(通过从YAML文件中删除所有"网络"部分(。这应该能解决你的问题。然而,Docker不建议将这种方法用于生产。

另一种选择是在用户定义的网络规范中添加一个网桥驱动程序:

networks:
counter-net:
driver: bridge

David是对的,您应该在您的环境中修复YAML。

environment:
- FLASK_APP=app.py
- FLASK_RUN_HOST=0.0.0.0

最新更新