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