Docker脱胎于LXC项目,充分利用Linux内核中的Cgroups机制,并进行一系列的封装,在保证性能的基础上极大增强了其易用性和便捷性,因此迅速风靡业界。但Docker也存在一些短板,比如跨物理机之间的网络互联,因为Docker默认是采用NAT方式访问外部网络,这样便造成了难以直接和别的物理机上的容器互联。跨主机互联的解决办法有多种,这里记录使用weave来解决这一问题的过程。
准备工作
主机node215(IP=192.168.226.215),node216(IP=192.168.226.216),均安装配置好Docker。
安装weave
分别在两台主机node215和node216上执行
开启weave
weave需要开启两个容器来辅助,因此会拉取两个镜像下来,首次执行weave launch便会拉取相关镜像,两个主机都要开启
开始使用
在主机node216上,我们需要手动和node215连接
这样才能在容器中使用weave互联
在node216上开启一个容器,指定其IP为192.168.0.2
在node215上开启一个容器,指定其IP为192.168.0.3
然后在node215上的容器内测试
可以看到,实现了跨主机的网络互联
小结
Docker的网络和IO一直被人所诟病,在社区没有提出完美解决方案之前,还是得用这种麻烦的方式解决,另外还有pipework等方式,后续也会尝试体验一下。