实现 docker 跨主机通信(Swarm版)

本文将在云服务器之间实现基于Swarm集群的overlay网络,以达到跨主机通信的目的。

docker 的安装教程非常之多,这里不再赘述。

环境配置

节点名 节点IP 节点服务
dnode0 10.0.0.11 安装 Docker,并初始化Swarm集群
dnode1 10.0.0.12 安装 Docker
dnode2 10.0.0.13 安装 Docker

配置三台机器,请注意修改hostname为不同的值,防火墙放行如下端口:

  • TCP端口2376 用于安全的 Docker 客户端通信,这是 Docker Machine(被用来编排Docker的主机)正常工作所必需的。
  • TCP端口2377 用于 Docker Swarm 或集群中节点之间的通信,只需要在管理节点上打开。
  • UDP端口4789 用于覆盖网络流量(容器入口网络)。
  • TCP和UDP端口7946 用于节点之间的通信(容器网络发现)。

初始化Swarm集群服务

docker swarm init

如果没有记住加入集群的token,以下可以重新获取

docker swarm join-token worker

其他节点分别加入Swarm集群

docker swarm join --token SWMTKN-1-tokenxxxxxxx 10.0.0.11:2377

在节点上创建网络

docker network create --driver overlay --subnet=10.0.2.0/24 --gateway=10.0.2.1 --attachable ovnet

分别在不同的节点上创建可以互通的容器

docker run -it --rm --network ovnet --ip 10.0.2.5 alpine
docker run -it --rm --network ovnet --ip 10.0.2.6 alpine
docker run -it --rm --network ovnet --ip 10.0.2.7 alpine
文章作者: 若海; 原文链接: https://www.rehiy.com/post/285/; 转载需声明来自技术写真 - 若海

添加新评论