我在getting started overlay处跟进了示例,我有一个简单的查询。是否可以使用叠加使用多主机网络功能而无需创建swarm cluster
?我不想使用像编织等第三方插件。我想使用docker本地网络支持。
我3.16+ kernel
正在运行RHEL和docker 1.9
。
答案 0 :(得分:10)
是的,有可能:见" Lab 6: Docker Networking"。
覆盖网络的关键部分是发现服务,例如Consul。
覆盖网络需要键值存储 商店维护有关网络状态的信息,包括发现,网络,端点,IP地址等。引擎支持Consul,etcd和ZooKeeper(分布式商店)键值存储商店。
文章" Docker Networks: Discovering Services on an Overlay"对当前的服务发现工具提出了一些批评,这些工具不是为单个容器注册或发现而构建的。
Overlay使用KV存储库来模拟网络拓扑并使跨主机容器与容器通信成为可能。它不提供SRV record分辨率。
问题在于,在覆盖网络中,每个容器都有自己的IP地址 因此,实现这项工作的唯一方法是在网络上提供服务的每个容器内运行Consul代理。对于开发人员来说,这当然不是透明的,或者与现成的图像兼容。