首页 > 解决方案 > docker容器中的网络不一致

问题描述

我已经使用 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 中使用默认网络。

标签: dockernetworkingdocker-compose

解决方案


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

在此链接中,我描述了实现此目的的方法:

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>

推荐阅读