来自内部 docker 容器的 cURL 同一服务器

cURL same server from a inside docker container

我看到了很多类似的问题,但并不完全像我的... 我有一个经典的架构,

一个带有 docker 的服务器,一个带有 Traefik 的堆栈来分派请求, 和几叠 nginx/apache 和 php。比方说

问题是我无法从 docker 容器内卷曲另一个网站。


如果我尝试从服务器本身卷曲

curl -v website2.com
curl -v https://website2.com

我收到有效回复


如果我尝试从 website1 容器卷曲

curl -v website2.com
curl -v https://website2.com

我能看到

Trying XX.XX.XX.XX:443...

使用我的外部 IP(因此 DNS 应该没问题)但我没有收到任何响应,因此它以超时消息结束。


如果我将 192.168.48.4 website2.com 添加到我的 /etc/hosts 中并尝试 cURL,我会得到一个有效的响应,但如果我错了,请告诉我,但在这种情况下,它是通过本地而不是从服务器外


顺便说一句,我需要从一个“管理器”网站 cURL,该网站从 API 获取所有域,因此 cURL 应该是动态的,我不能真正将所有 IP 手动添加到主机文件中或者随便什么

我真的很想从外部访问其他容器,比如外部服务

你有什么建议吗? 谢谢大家

感谢您的评论,特别是针对此主题的评论 https://community.traefik.io/t/curl-from-container-a-to-b-blocked/1040/14

就我而言,主机的防火墙 (ufw) 正在“阻止”我的 http/https 请求,即使我的域可以访问

这些命令解决了我的问题

sudo ufw allow http
sudo ufw allow https