curl: (56) Recv 失败:连接由对等方重置,用于在 Cpanel 上运行的 Docker 容器

时间:2021-05-29 18:12:33

标签: python docker cpanel gunicorn

我正在运行一个 docker 容器,其中有一个 python 应用程序在 host='0.0.0.0' 上监听,端口为 5050。 当我在 localhost:5000 卷曲我的主站点时,它返回正确的结果。当我 curl localhost:5050 时,它返回

curl: (56) Recv failure: Connection reset by peer

这是我的构建文件

FROM ubuntu:20.04


RUN apt update
RUN apt install -y python3-pip

# Install Dependencies
COPY requirements.txt .
RUN pip3 install  --no-cache-dir -r requirements.txt


COPY search_api.py .
COPY search/ search

ENV DEBUG 0


CMD [ "gunicorn", "--workers", "2", "--threads", "1", "-b", "0.0.0.0:5050", "--timeout", "400", "search_api:app"]

我已经验证容器正在运行,这些是我返回的日志

[2021-05-29 17:00:43 +0000] [1] [INFO] Starting gunicorn 20.1.0
[2021-05-29 17:00:43 +0000] [1] [INFO] Listening at: http://0.0.0.0:5050 (1)
[2021-05-29 17:00:43 +0000] [1] [INFO] Using worker: sync
[2021-05-29 17:00:43 +0000] [9] [INFO] Booting worker with pid: 9
[2021-05-29 17:00:43 +0000] [10] [INFO] Booting worker with pid: 10

我没有在 CPanel 或任何东西中注册为应用程序的文件夹。在安装 docker 和 docker-compose 后,我基本上只是拉了存储库。然后我继续构建,然后运行容器。这个容器在我本地工作,但似乎我的网络服务器没有监听它?

如果有人对此有任何了解,请帮忙!

1 个答案:

答案 0 :(得分:0)

到目前为止我发现它与docker访问的IP地址有关

[root@host etc]# sudo ip addr show docker0
 4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:de:53:79:21 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 scope global docker0
   valid_lft forever preferred_lft forever
inet6 fe80::42:deff:fe53:7921/64 scope link
   valid_lft forever preferred_lft forever

docker 访问的 IP 地址是 172.17.0.1,这对我来说不是 localhost。我希望它是因为它会让它变得更容易。 我现在可以在拨打 172.17.0.1:5050 时访问该应用程序,所以这是一个创可贴的解决方案。我将尝试找到一种方法来代替这个本地主机。