首页 注册 登录
V2EX = way to explore V2EX 是一个关于分享和探索的地方
现在注册 已注册用户请 登录
V2EX Flask

访问不到运行在 docker 里面的 flask 应用

JasonLaw · 2020年11月24日 13:00:04 +08:00 · 5105 次点击
这是一个创建于 1871 天前的主题,其中的信息可能已经有所发展或是发生改变。

server.py 的关键内容如下:

if __name__ == '__main__':
 app.run(host='0.0.0.0', port=9000)

Dockerfile 如下:

FROM python:3.7-buster
WORKDIR /app/
COPY ./requirements.txt /app/requirements.txt
RUN pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
COPY . /app/
EXPOSE 9000
ENV FLASK_APP=server.py
CMD python -m flask run --host=0.0.0.0 -p 9000

下面这样子可以访问到 localhost:9000 。

docker container run --name user-info-pool-service -d -p 9000:9000 user-info-pool-service

但是下面这样却不行。

docker container run --network=host --name user-info-pool-service -d user-info-pool-service

真的好奇怪,为什么呢?

(追記) (追記ここまで)
9 条回复 2020年11月24日 14:05:16 +08:00
dilu
1
dilu 2020年11月24日 13:14:44 +08:00
大哥,你第二中方法没有映射端口啊......
kosmosr
2
kosmosr 2020年11月24日 13:17:39 +08:00
了解一下-p 参数你就知道了
acmore
3
acmore 2020年11月24日 13:39:46 +08:00
你的这两条容器运行命令都是可以的。
我按你的 scenario 测试了一下,只要删除掉 server.py 中的 main 部分就可以了,大概是这部分启动和 CMD 中的启动命令冲突了。我的 server.py 如下,其他的和你一样:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
return 'Hello, World!'
acmore
4
acmore 2020年11月24日 13:41:13 +08:00
@dilu
@kosmosr

Docker 在 host 模式下是会直接运行在宿主机网络环境中的,此时就不需要映射端口了。
taolu
5
taolu 2020年11月24日 13:42:41 +08:00 via iPhone ❤️ 1
--network host 只适用于 Linux,不支持 win 和 mac
(追記) (追記ここまで)
acmore
6
acmore 2020年11月24日 13:45:24 +08:00 ❤️ 2
@taolu 对的,还有可能是这种情况。

"The host networking driver only works on Linux hosts, and is not supported on Docker Desktop for Mac, Docker Desktop for Windows, or Docker EE for Windows Server."
kosmosr
7
kosmosr 2020年11月24日 13:55:28 +08:00
@acmore 学习到了
JasonLaw
8
JasonLaw
OP
2020年11月24日 14:03:08 +08:00
@taolu #5
@acmore #6

我记起来了🤕,我之前还看过 https://github.com/docker/for-mac/issues/2716 这个 issue,就是没想起这个原因。
taolu
9
taolu 2020年11月24日 14:05:16 +08:00
@JasonLaw #8 我也是之前踩过坑才记得
(追記) (追記ここまで)
关于 · 帮助文档 · 自助推广系统 · 博客 · API · FAQ · Solana · 3623 人在线 最高记录 6679 · Select Language 创意工作者们的社区 World is powered by solitude VERSION: 3.9.8.5 · 22ms · UTC 04:20 · PVG 12:20 · LAX 20:20 · JFK 23:20
♥ Do have faith in what you're doing.

AltStyle によって変換されたページ (->オリジナル) /