我有两个在我的机器上运行本地的流浪主机,我试图从另一台主机上的第二个容器中攻击一个主机内的容器。
当我从容器中的卷曲时:
curl search.mydomain.localhost:9090/ping
我收到卷曲:(7) Failed to connect to search.mydomain.localhost port 9090: Connection refused
但是当我卷曲而没有指定端口时:
curl search.mydomain.localhost/ping
OK
我确定端口是正确暴露的,就像我从主机中的而不是我收到的容器中尝试相同:
curl search.mydomain.localhost:9090/ping
OK
这表明端口9090上的服务已暴露,但是容器试图访问它时存在一些网络问题。
运行相同版本的vbox / vagrant / docker / docker-compose并使用相同的repos提交的开发人员可以毫不费力地从容器中命中服务。我真的很难过从这里尝试一下......
我正在使用默认网桥:
sudo brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.02427c9cea3c no veth5dc6655
vethd1867df
docker network inspect bridge
[
{
"Name": "bridge",
"Id": "e4b8df614d4b8c451cd4a26c5dda09d22d77de934a4be457e1e93d82e5321a8b",
"Scope": "local",
"Driver": "bridge",
"IPAM": {
"Driver": "default",
"Config": [
{
"Subnet": "172.17.0.1/16",
"Gateway": "172.17.0.1"
}
]
},
"Containers": {
"1d67a1567ff698694b5f10ece8a62a7c2cdcfcc7fac6bc58599d5992def8df5a": {
"EndpointID": "4ac99ce582bfad1200d59977e6127998d940a688f4aaf4f3f1c6683d61e94f48",
"MacAddress": "02:42:ac:11:00:03",
"IPv4Address": "172.17.0.3/16",
"IPv6Address": ""
},
"3e8b6cbd89507814d66a026fd9fad26d649ecf211f1ebd72ed4689b21e781e2c": {
"EndpointID": "2776560da3848e661d919fcc24ad3ab80e00a0bf96673e9c1e0f2c1711d6c609",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
}
},
"Options": {
"com.docker.network.bridge.default_bridge": "true",
"com.docker.network.bridge.enable_icc": "true",
"com.docker.network.bridge.enable_ip_masquerade": "true",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "1500"
}
}
]
我在Docker版本1.9.0上,构建76d6bc9和docker-compose版本:1.5.0。
任何帮助都将不胜感激。
答案 0 :(得分:2)
我解决了我的问题,这似乎可能是一个错误。本质上,容器从我的本地macbook继承/ etc / hosts,绕过运行容器的实际vagrant主机上的/ etc / hosts,导致我输入“127.0.0.1 search.mydomain.localhost”以进行所有连接尝试容器重定向到自身。