【问题标题】:flask docker - equests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url: /usersflask docker - equests.exceptions.ConnectionError:HTTPConnectionPool(host ='localhost',port = 8080):url超过最大重试次数:/users
【发布时间】:2020-07-29 20:42:06
【问题描述】:

我有 python 烧瓶应用程序,它侦听在 8080 上运行的另一个微服务。当我作为烧瓶应用程序运行时,它能够从 http://localhost:8080/users 获取。

但是当我在 docker 内运行时它失败了

requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8080): Max retries exceeded with url: /users (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f53804b5dc0>: Failed to establish a new connection: [Errno 111] Connection refused'))

在线:

File "/alert.py", line 45, in get_users
    r = requests.get('http://localhost:8080/users',verify=False)

这是我的主要代码:

if __name__ == '__main__':
    app.logger.setLevel(logging.INFO)
    data = create_data()
    port = os.getenv('PORT')
    app.run(debug=True, host='0.0.0.0', port=port)

Docker 脚本:

#!/bin/bash
docker build -t covid_service .
docker run -p 5000:5000 covid_service

Docker 文件:

FROM python:3
ADD alert.py /
RUN pip install flask
RUN pip install requests
EXPOSE 5000
CMD [ "python", "./alert.py" ]

请帮忙

【问题讨论】:

    标签: docker flask


    【解决方案1】:

    equests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8080): url: /users 超出了最大重试次数(由 NewConnectionError(' 引起): 无法建立新连接:[Errno 111] Connection denied'))

    您不能使用localhost 访问另一个容器,localhost 意味着烧瓶应用容器不是另一个微服务。

    在 Linux 上将 localhost 更改为 HOST_IP 或在 windows 和 mac 上使用 host.docker.internal

    r = requests.get('http://host.docker.internal:8080/users',verify=False)
    

    【讨论】:

      【解决方案2】:

      port = os.getenv('PORT')

      这里没有收到端口,因为 Dockerfile 和 start 命令不包含它。 要么编辑 Dockerfile - 添加

      环境端口=5000

      或添加 -env PORT=5000 启动命令

      如果您需要在 docker 中工作并使用您的 Docker 文件的访问服务,您应该查询 http://localhost:5000/users

      【讨论】:

        猜你喜欢
        • 2020-11-18
        • 2020-07-19
        • 2020-10-31
        • 1970-01-01
        • 1970-01-01
        • 2019-09-24
        • 2014-01-27
        • 1970-01-01
        • 2014-08-20
        相关资源
        最近更新 更多