我在AWS VPC中运行docker时遇到问题。
这是我的设置:我有两台计算机在VPC中运行:
- 10.0.100.150
- 10.0.100.151
它们都分配有弹性IP,并且都在启用Internet的同一子网中运行。
假设我正在运行一个Web服务器,该服务器在10.0.100.150机器上的容器中提供静态文件:
- 知识产权:172.17.0.2
- 端口8111在计算机上的8111端口上转发。
我正在尝试从本地计算机访问静态文件(或者另一台非VPC计算机也尝试了未在VPC中运行的EC2实例),并且它可以完美地工作。
如果我尝试从另一台计算机(10.0.100.151)访问文件,则会挂起。我正在使用wget拉文件。
试图用tcpdump和ngrep调试它,我已经看到请求是到达容器的。如果我在主机上ngrep,则看到请求进入,但没有响应返回。如果我在容器上ngrep,我会看到请求进入并返回响应。
我尝试了多个iptables设置(启用了路由后功能,以及手动转发端口等),但没有成功。
以任何方式提供帮助-甚至调试指导也将不胜感激。
谢谢!
将
—
Docker
仔细阅读了将Docker容器暴露于VPC网络的文章,但那是完全不同的。
—
Bogdan加沙
是吗?您是否已在10.0.100.150上禁用了源/目标IP检查?
—
Michael-sqlbot
是的,我禁用了它,并且还在另一个非默认VPC上进行了测试,同样的错误。
—
Bogdan加沙
您可以列出EC2实例的安全组吗?这听起来像实例不在默认安全组中,以允许该安全组中其他实例之间的通信。
—
安迪·辛