Swarm是Docker官方提供的一款集群管理工具,其主要作用是将若干台Docker主机抽象成一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。
- 1.三台服务器,内网互通
192.168.1.100 (manager)
192.168.1.101 (worker1)
192.168.1.102 (worker2)
- 2.安装docker环境
docker ce (version 18.09.1)
docker compose (version 1.24.0)
- 3.使用docker swarm创建集群
3.1.在manager,初始化集群。如果主机只有一个网络接口,则该–advertise-addr标志是可选的。
docker swarm init --advertise-addr=192.168.1.100
3.2.在worker1上执行命令,将worker1加入集群
docker swarm join --token <token> 192.168.1.100:2377
3.3.在worker2上执行命令,将worker2加入集群
docker swarm join --token <token> 192.168.1.100:2377
- 4.在manager上查看集群列表
docker node ls
- 5.在manager上查看网络
docker network ls
- 6.在manager上建立网络
docker network create --driver=overlay --attachable swarm-net
- 7.将容器的网络连接到新建的my-swarm-net(包括节点manager,worker1,worker2)
docker run -itd --name=myalpine --network=swarm-net alpine
工作节点不能创建通过docker compose创建自定义网络,通过上述命令绑定容易创建,alpine镜像只有5M消耗资源较小。
- 8.使用docker compose部署服务,以emq一个节点为例:
version: '3'
services:
emq-node1:
container_name: emq_node1
image: emqx/emqx:v3.2.0
hostname: emq-node1
extra_hosts:
- "emq_node2:10.0.4.12"
environment:
- TZ=Asia/Shanghai
networks:
swarm-net:
ipv4_address: 10.0.4.15
restart: always
tty: true
ports:
- 1883:1883
- 8083:8083
- 8883:8883
- 8084:8084
- 18083:18083
networks:
swarm-net:
external: true