【问题标题】:Inconsistent networking in docker containerdocker容器中的网络不一致
【发布时间】:2021-09-06 05:55:53
【问题描述】:

我已经使用 Windows 上的 docker 在 docker 容器内对一个烧瓶应用程序进行了 docker 化,并且我正在 debian wsl2 中运行容器。我需要将此容器中的请求发送到外部 api,但出现此错误:

(Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f19fa4207f0>: Failed to establish a new connection: [Errno -5] No address associated with hostname')

但我可以在我的浏览器中访问该网站,我可以在 wsl 中访问它。并且对其他api的请求没有任何问题。 我也在 docker 中使用默认网络。

【问题讨论】:

  • 您是否使用localhost 作为烧瓶应用程序的主机名?
  • 外部 API 在哪里运行(在同一主机上的另一个容器中,在同一主机上不在同一容器中,在同一网络中的另一个主机上,在公共 Internet 上)?您的容器或主机系统是否有任何特殊的 DNS 配置?您要连接到哪个 URL?
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: docker networking docker-compose


【解决方案1】:

我想根据您对问题的描述,您必须检索容器主机的正确 IP 地址。

At this link我描述了实现这一目标的方法:

1.通过以下方式检索 IP:

IP_ADDRESS=$(ip addr show | grep "\binet\b.*\bdocker0\b" | awk '{print $2}' | cut -d '/' -f 1)

2。在 docker-compose YAML 中分配它

extra_hosts:
      docker.host: ${IP_ADDRESS}

3.通过以下技巧将其传递给 docker compose

IP_ADDRESS=${IP_ADDRESS} docker-compose <YOUR_BUILDING_ARGUMENTS>

【讨论】:

    猜你喜欢
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    • 2020-07-05
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    相关资源
    最近更新 更多