Docker的部署比较麻烦的地方就是网络, 容器虽然极大的节约了资源,提高了安全性,但是由于每一个容器都是一个独立的环境,其网络也是独立的网络,和其他容器进行通信成了一个难题.
还好针对这个问题,各个公司提出的解决方案也比较多, 比如Pipework、Flannel、Weave、Open vSwitch 都是Docker的网络解决方案.
下面我们学习一下weave 的使用方法, 然后下一篇文章使用weave做一个简单的部署
weave项目地址: https://github.com/weaveworks/weave
weave原理:
Weave通过创建虚拟网络使Docker容器能够跨主机通信并能够自动相互发现。
通过weave网络,由多个容器构成的基于微服务架构的应用可以运行在任何地方:主机,多主机,云上或者数据中心。
应用程序使用网络就好像容器是插在同一个网络交换机上一样,不需要配置端口映射,连接等。
在weave网络中,使用应用容器提供的服务可以暴露给外部,而不用管它们运行在何处。类似地,现存的内部系统也可以接受来自于应用容器的请求,而不管容器运行于何处。
简单地说,就是weave创建了一个虚拟网络, 我们只需要把所有的Docer容器加入到该虚拟网络中,各个容器就处于相同的网段, 容器之间就可以自由的相互通信了, 即使真实的容器处于不同的主机或网络.
下面我们就来自己实现一下整个部署过程: