weave实现宿主机之间的容器互联

weave实现宿主机之间的容器互联html

Docker Weave简介node

关于weave的原理不作细致的说明,若是想了解weave能够登录官网:https://www.weave.works/git

wKioL1nYFWqiEHdBAACLNmcgnwk176.png

wKiom1nYFcryM9-mAADMkjIFs6o762.png

注意:防火墙必定要打开6783端口,不然没法链接docker

注意:开启路由转发vim

#vim /etc/sysctl.confcentos

net.ipv4.ip_forward = 1bash

#sysctl  -p网络

环境搭建:一共两台机器:两台机器都安装WeaveDocker
192.168.111.128  node1
192.168.111.130  node2ide

1、在全部须要跨主机互通的docker宿主机安装weave
1node1上安装weave,并启动weave
#curl  -L  git.io/weave  -o  /usr/local/bin/weave工具

#chmod  a+x   /usr/local/bin/weave

wKioL1nYFYyhA9c7AAANELt2yYM896.png

weave version 默认不会下载对应容器,初次运行时会提示容器不存在。你可在运行 weave launch 后在来验证一下

初始化Weave网络

dev-master-01 上初始化Weave网络很是的简单,只需运行 weave launch 命令就好了。这条命令是在容器中运行一个 weave router ,须要在每台主机上都启用这个服务。该服务须要三个docker容器来辅助运行,首次运行时会自动下载相关镜像。另外执行 weave launch 以前要保证有 bridge-utils 网桥工具包

#yum  install  -y bridge-utils

#weave   launch  

wKiom1nYFerjVP2SAACMPervkoE239.png

等命令运行结束后,网络就初始化好了

wKioL1nYFevj-2lfAAAaXjTGDQ4705.png

另外还会生成一个名字叫weave的网桥,另外一个是Docker默认生成的。

wKioL1nYFfWgpEWtAAAdP00ec0E112.png

wKiom1nYFlCCULxmAAA0Ygy-WVY676.png

docker中也会生成一个使用weave的网桥的自定义网络。

wKioL1nYFhKgGvysAAAfV78BabE241.png

weave的这些数据是保存在每台机器上分配的名为 weavedb 的容器上的,它是一个 data volume 容器,只负责数据的持久化。

链接不一样主机

node主机须要链接到master主机,只须要在 weave launch 后面跟上master主机的ip或者hostname就好了。两台机器就会自动创建集群,并同步全部须要的信息。

主机 node02 链接到主机 node01 

node02 的主机上执行

#weave  launch  192.168.111.128

#weave   connect   192.168.111.128

#weave   version

wKiom1nYFm_SpOhJAAAM48FS-C4274.png

这个命令至关于在本地启动了 weave route ,再经过 weave connect 192.168.111.128来和192.168.111.131route容器创建链接。这样weave route就能相互找到remote主机。

wKioL1nYFjGxpKy_AAAbe6EMfc8212.png

运行 weave status ,能够查看 weave 的状态信息:

wKiom1nYFoqTP5_2AACQ12YVRpI923.png

wKioL1nYFpuSO22QAAALoUztQtY298.png

Weave有三种方式和Docker进行集成,以便运行的容器跑在Weave网络中。

· 使用 weave run 命令直接运行容器。

· 使用 weave env 命令修改 DOKCER_HOST 环境变量的值,使 docker client  weave 交互, weave  docker daemon 交互,自动为容器配置网络,对用户透明。

· 使用 weave plugin ,在运行容器的时候使用 --net=weave 参数。

使用 weave run 命令直接运行容器

咱们在node01主机上运行一台容器,命名为b1

#docker run  --net=weave --name  b1  -it  centos:node01 /bin/bash

wKiom1nYFviR1MfxAABqM46Tw9w105.png

wKioL1nYFriBk3aHAAB5zNB42Z8602.png

#docker  run  --net=weave --name b2  -it  centos:node02  /bin/bash

wKiom1nYFxPyqOW_AAB3gc2XA8M264.png

wKioL1nYFtPBuGTkAABI29Rpljw081.png

使用 weave env 命令运行容器

#eval $(weave env)

#docker run --name d1 -it centos:node01 /bin/bash

wKiom1nYFyzT9fz8AABnBGLfUtg057.png

 

wKioL1nYFvWSQPrEAABLEu8ARVQ630.png

#eval   $(weave env)

#docker  run  --name  d2  -it centos:node02  /bin/bash

wKiom1nYF1WCWL3qAABnYtxXX98735.png

wKioL1nYFxPhVoGoAABq0yScja8953.png

到此,若是没有出现任何问题,跨主机的docker容器已经可以互联。

使用weave实现跨主机docker容器互联

相关文章
相关标签/搜索