docker覆盖networkingcentos7

拔出我所有的头发后。 试图在一个3节点的CentOS7群集上获得docker覆盖networking,我需要一些帮助。

1 – 所有节点上升级的内核4.5.0-1.el7.elrepo.x86_64
2 – Docker版本:Docker版本1.10.3,构build20f81dd(在所有节点上相同)Docker信息:

Filters: health, port, dependency, affinity, constraint<br> Nodes: 3<br> docker1: 192.168.1.231:2375<br> └ Status: Healthy<br> └ Containers: 5<br> └ Reserved CPUs: 0 / 1<br> └ Reserved Memory: 0 B / 2.033 GiB<br> └ Labels: executiondriver=native-0.2, kernelversion=4.5.0-1.el7.elrepo.x86_64, operatingsystem=CentOS Linux 7 (Core), storagedriver=devicemapper<br> └ Error: (none)<br> └ UpdatedAt: 2016-04-04T03:16:04Z<br> docker2: 192.168.1.35:2375<br> └ Status: Healthy<br> └ Containers: 3<br> └ Reserved CPUs: 0 / 1<br> └ Reserved Memory: 0 B / 2.033 GiB<br> └ Labels: executiondriver=native-0.2, kernelversion=4.5.0-1.el7.elrepo.x86_64, operatingsystem=CentOS Linux 7 (Core), storagedriver=devicemapper<br> └ Error: (none)<br> └ UpdatedAt: 2016-04-04T03:16:12Z<br> docker3: 192.168.1.36:2375<br> └ Status: Healthy<br> └ Containers: 2<br> └ Reserved CPUs: 0 / 1<br> └ Reserved Memory: 0 B / 2.033 GiB<br> └ Labels: executiondriver=native-0.2, kernelversion=4.5.0-1.el7.elrepo.x86_64, operatingsystem=CentOS Linux 7 (Core), storagedriver=devicemapper<br> └ Error: (none)<br> └ UpdatedAt: 2016-04-04T03:16:20Z<br> Plugins:<br> Volume:<br> Network:<br> Kernel Version: 4.5.0-1.el7.elrepo.x86_64<br> Operating System: linux<br> Architecture: amd64<br> CPUs: 3<br> Total Memory: 6.099 GiB<br> Name: 21131682ca99<br> 

创build覆盖networking工作正常

dockernetworking创build-d覆盖–subnet = 10.10.10.0 / 24红色

然后在每个docker节点上创build两个testing容器:

 docker1 docker run -itd --name container1 --net RED busybox<br> docker2 docker run -itd --name container2 --net RED busybox<br> 

检查networking:

 docker -H :4000 network inspect RED [ { "Name": "RED", "Id": <br>"f64fcb769bba4a4b0d709599e9670657ee2cba3c98ca031909bc3967b6085867", "Scope": "global", "Driver": "overlay", "IPAM": { "Driver": "default", "Options": null, "Config": [ { "Subnet": "10.10.10.0/24" } ] }, "Containers": { "1371c2fec957fe2ecd9d9d9dcf21492e63ef497c662a4b7eee7e8170738875b2": { "Name": "container1", "EndpointID": "e1e5d0d0c794da9f7a9054e0012bb184b10501c4cdd537193608a38bafa1ee00", "MacAddress": "02:42:0a:0a:0a:02", "IPv4Address": "10.10.10.2/24", "IPv6Address": "" } "489c7963b7484041a7ef7647b7383a69dfdde8eb416e0a26aa41a023e154ab5f": { "Name": "container2", "EndpointID": "3d3afb54922d4b904056fc637e7f76cbfe632230a730860ecde88e12ec9f16f2", "MacAddress": "02:42:0a:0a:0a:03", "IPv4Address": "10.10.10.3/24", "IPv6Address": "" 

我无法在不同的主机上从一个容器ping到另一个容器。 当两个容器都在同一个主机上时,它当然是可行的。 任何帮助/build议请。

不要忘记,如我在本教程中的“ 如何使Docker容器可以通过IP访问其他networking机器? ”所示,多机器覆盖networking假设您需要键值存储。

kv商店

这意味着您的docker守护进程必须以对该键值存储的引用启动。

另请参阅“ 群集和容器networking ”:

多主机networking需要一个键值存储
键值存储保存有关networking状态的信息,其中包括发现,networking,端点,IP地址等。

您将Docker Engine守护程序configuration为使用此存储。
两个必需的参数( --cluster-store--cluster-advertise )引用您的键值存储服务器。