【发布时间】:2017-09-04 16:31:55
【问题描述】:
我正在尝试在 AWS 中设置一个 swarm 集群,但是主机中的容器无法访问互联网。用于地址解析或通过 IP 直接连接的 ping 命令在容器内部不起作用。
在创建此票证之前,我查看了this 问题,但我认为我的情况没有 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
我也尝试过创建新的 overlay(192.168.1.0/24) 和 docker_gwbridge(10.11.0.0/16) 网络,但没有成功。
我正在使用这些选项创建服务(删除 mount 和 env 参数):
docker service create --publish 8098:8098 <Imagename>
请注意,当我自己创建覆盖网络时,我也在创建命令中添加了选项 --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***"
}
【问题讨论】:
-
你能从节点
curl ipinfo.io吗?还有你在安全组中打开了哪些端口? -
@TarunLalwani
curl ipinfo.io也无法在容器内部工作...我能够从 EC2 主机执行这些命令,但不能在容器内部执行这些命令。同样正常的ping www.google.com或 @987654329 @ 命令在 EC2 主机上运行,但不是在容器内部运行。
标签: amazon-web-services docker docker-swarm