docker - 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 中使用默认网络。
解决方案
我想根据您对问题的描述,您必须检索容器主机的正确 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>
推荐阅读
- python-3.x - 在 AI Notebook 中使用 AVRO 写入 GCS
- jupyter - Jupyter 实验室/笔记本无法打开
- excel - 如何命名 txt 文件,使用 VBA 使用列表框值创建?
- python - Matplotlib 忽略采样数据帧的宽度
- c# - 双倍异常错误 - 无法设置为“System.Single”
- bash - 未找到或意外操作员
- list - 如何在 Haskell 中打乱自定义列表数据?
- javascript - 错误请求错误:使用 axios put 的 React js 中出现 400
- javascript - javascript中文件的UTF-16字节数组?
- java - 处理具有不同多重性的相似对象分组的设计模式?