基于weave实现docker跨主机网络通信

前言

  • IP:
    • 192.168.0.10
    • 192.168.0.11
  • 系统版本:centos 7
  • weave版本:2.8.1,下载地址:https://git.io/weave
  • docker版本:18.06.3

注意:

  1. linux内核版本至少3.8+,但推荐3.12+,性能更好。
  2. docker主机名不能相同。
  3. 节点之间如有防火墙,必须放行6783/tcp、6783/udp和6784/udp端口。

步骤

  1. 安装weave(在国内的话可能需要点魔法,可以先用魔法在浏览器下载,然后再传到服务器)
curl -L git.io/weave -o /usr/local/bin/weave
  1. 启动weave并与其他主机建立连接。启动的时候会拉取weave镜像,建议先配置docker国内源。
weave launch
# 也可以直接指定要通信的主机
# 192.168.0.10上执行
weave launch 192.168.0.11
## 192.168.0.11上执行
weave launch 192.168.0.10
  1. 使用weave创建容器
# 方式一。使用该方式后创建容器就不需要指定weave网络了,而且可以使用weave自带的dns
eval $(weave env)
docker run -it busybox
# 方式二
docker run -it --rm --net=weave busybox

weave常用命令

  • 查看weave主机连接信息
weave status connections
  • 查看帮助信息
weave help
  • 列出使用weave网络创建的容器
weave ps

weave其他功能

  • 命名和发现。命名的容器会自动注册到weave dns,并可以通过容器名称通信。需要执行eval $(weave env)
  • IP地址管理(IPAM)。weave自动为容器分配位移的IP地址,可通过weave ps查看。
  • 负载均衡。允许注册多个相同名称的容器,weave dns随机为每个请求返回地址,提供基本的负载均衡功能。
  • 动态拓扑。可以在不停止或重新配置docker主机的情况下,从weave网络添加或删除docker主机
  • 容错。如果有主机或网络出现故障,weave会绕过故障主机,保证两边容器继续通信。
posted @ 2022-02-18 17:17  花酒锄作田  阅读(125)  评论(0编辑  收藏  举报