更新3
Libswarm已重命名为swarm,现在是一个单独的应用程序。
这是用作起点的github页面演示:
# create a cluster
$ swarm create
6856663cdefdec325839a4b7e1de38e8
# on each of your nodes, start the swarm agent
# <node_ip> doesn't have to be public (eg. 192.168.0.X),
# as long as the other nodes can reach it, it is fine.
$ swarm join --token=6856663cdefdec325839a4b7e1de38e8 --addr=<node_ip:2375>
# start the manager on any machine or your laptop
$ swarm manage --token=6856663cdefdec325839a4b7e1de38e8 --addr=<swarm_ip:swarm_port>
# use the regular docker cli
$ docker -H <swarm_ip:swarm_port> info
$ docker -H <swarm_ip:swarm_port> run ...
$ docker -H <swarm_ip:swarm_port> ps
$ docker -H <swarm_ip:swarm_port> logs ...
...
# list nodes in your cluster
$ swarm list --token=6856663cdefdec325839a4b7e1de38e8
http://<node_ip:2375>
更新2
现在的正式方法是使用libswarm,请参见此处的演示
更新
使用相同的方法,openvswitch主机在docker中进行通信有一个不错的主旨。
为了允许服务发现,有一种基于DNS的有趣方法,称为skydock。
还有一个转播。
这也是一篇不错的文章,使用了相同的谜题,但在顶部还添加了vlan:
http://fbevmware.blogspot.it/2013/12/coupling-docker-and-open-vswitch.html
修补与解决方案的健壮性无关。Docker实际上只是Linux容器上的一种DSL,而本文中的两种解决方案都只是绕过了一些Docker自动设置,而直接退回到Linux容器上。
因此,您可以安全地使用解决方案,并等到Docker实现后,再以一种更简单的方式来实现。