我正在尝试在AWS中设置群群集,但是主机中的容器无法访问Internet。用于地址解析或通过IP直接连接的ping命令在容器内部不起作用。
在创建此票证之前,我查看了此问题,但我认为在我的案例中没有CIDR重叠。
我有以下配置:
Public Subnet CIDR : 10.2.1.0/24
Namespace server inside this is :10.2.0.2
Ingress overlay network --> 10.255.0.0/16
docker_gwbridge --> 172.18.0.0/1
我也尝试过创建新的覆盖(192.168.1.0/24)和docker_gwbridge(10.11.0.0/16)网络,但没有成功。
我使用以下选项创建服务(删除mount和env参数):
docker service create --publish 8098:8098 <Imagename>
请注意,当我自己创建覆盖网络时,我也在create命令中添加了选项**--network my-overlay**。
关于我可能错过/做错了什么,有什么建议吗?
编辑1添加更多信息
下面是当我不创建一个新的覆盖网络和默认的一个去检查容器:
"NetworkSettings": {
"Bridge": "",
"SandboxID": "eb***",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"5005/tcp": null,
"8080/tcp": null
},
"SandboxKey": "/var/run/docker/netns/e***9",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "",
"Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"MacAddress": "",
"Networks": {
"ingress": {
"IPAMConfig": {
"IPv4Address": "10.255.0.4"
},
"Links": null,
"Aliases": [
"30**"
],
"NetworkID": "g7w**",
"EndpointID": "291***",
"Gateway": "",
"IPAddress": "10.255.0.4",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:4***"
}
下面是我创建覆盖网络时的情况:
"Networks": {
"ingress": {
"IPAMConfig": {
"IPv4Address": "10.255.0.4"
},
"Links": null,
"Aliases": [
"42***"
],
"NetworkID": "jl***3",
"EndpointID": "792***86c",
"Gateway": "",
"IPAddress": "10.255.0.4",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:4***"
},
"my-overlay": {
"IPAMConfig": {
"IPv4Address": "192.168.1.3"
},
"Links": null,
"Aliases": [
"42**"
],
"NetworkID": "4q***",
"EndpointID": "4c***503",
"Gateway": "",
"IPAddress": "192.168.1.3",
"IPPrefixLen": 24,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:4***"
}
3条答案
按热度按时间k2fxgqgv1#
我回答我的问题,因为我发现这个行为的原因是我的定制厨师食谱docker安装.我设置iptables=假在docker配置,因此它是不工作的任何docker容器,除了那些在主机网络模式.
我从Bret( Docker 社区的 Docker 冠军)那里得到了以下建议,帮助我找到了问题的根源。总之,这是我做错了什么,但是如果你想在未来解决这样的问题,请在下面发布建议。
yuvru6vn2#
正如Manish所说,首先尝试ping没有覆盖网络的公共网络:
如果它不工作,那么你有一个防火墙或其他东西的问题.在我的情况下,iptables防火墙限制DOCKER-USER链获得访问公共网络.所以我已经刷新了所有的DOCKER规则:
然后重新初始化:
6rqinv9w3#
我也遇到过类似的问题,可以通过配置/etc/docker目录中的daemon.json文件来解决。如果下面的行还没有出现,请添加它们。
daemon.json文件应如下所示
然后重新启动Docker服务