gpt4 book ai didi

Docker不使用gunicorn映射端口

转载 作者:行者123 更新时间:2023-12-02 11:25:49 46 4
gpt4 key购买 nike

我在 docker 容器中运行 gunicorn。我知道这是可行的,因为 sshing 进入它并在 docker 容器中 curl localhost:8000/things 给了我想要的响应,但是,尽管 docker 告诉我端口已被映射,但我无法在我的主机上访问它。是什么赋予了?

我跑了

docker run -d -p 80:8000 myapp:version1.1 /bin/bash -c 'gunicorn things:app'
docker ps给我
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                            NAMES
614df1f2708e myapp:version1.1 "/bin/bash -c 'gunico" 6 minutes ago Up 6 minutes 5000/tcp, 0.0.0.0:80->8000/tcp evil_stallman

在我的主机上,冰壶 locahost/things 给了我
curl: (52) Empty reply from server

但是,当我 docker exec -t -i 614df1f2708e /bin/bash然后 curl localhost:8000/things ,我成功地得到了我的正确答案。

为什么 docker 不能正确映射我的 8000 端口?

最佳答案

当你发布一个端口时,Docker 会将请求转发到容器中,但容器需要监听它们。容器有一个来自 Docker 网络的 IP 地址,您的应用程序需要监听该地址。

Check your gunicorn bind setting - 如果它只收听 127.0.0.1:8000那么它就不会绑定(bind)到容器的 IP 地址,也不会收到来自外部的请求。 0.0.0.0:8000是安全的,因为它将绑定(bind)到所有地址。

关于Docker不使用gunicorn映射端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39780422/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com