在docker中使用覆盖使用多主机网络功能需要swarm

Ank*_*mar 8 linux networking docker docker-swarm

我已经按照示例开始叠加,我有一个简单的查询.是否可以使用覆盖使用多主机网络功能而无需创建swarm cluster?我不想使用像编织等第三方插件.我想使用docker本地网络支持.

我已经3.16+ kernel运行RHEL和docker 1.9.

Von*_*onC 10

是的,有可能:参见" 实验6:Docker网络 ".
覆盖网络的关键部分是发现服务,例如Consul.

覆盖网络需要键值存储.
商店维护有关网络状态的信息,包括发现,网络,端点,IP地址等.引擎支持Consul,etcd和ZooKeeper(分布式存储)键值存储库.

https://github.com/docker/dceu_tutorials/raw/master/images/tut6-step1.png

文章" Docker Networks:在覆盖层上发现服务 "对当前的服务发现工具提出了一些批评,这些工具不是为单个容器注册或发现而构建的.

Overlay使用KV存储库来模拟网络拓扑并使跨主机容器与容器通信成为可能.它不提供SRV记录分辨率.

问题是,在覆盖网络中,每个容器都有自己的IP地址.
因此,实现这项工作的唯一方法是在网络上提供服务的每个容器内运行Consul代理.这对开发人员来说当然不是透明的,或者与现成的图像兼容.