環(huán)境說明:
IP | 主機(jī)名 |
---|---|
192.168.111.152 | docker-node1 |
192.168.111.153 | docker-node2 |
192.168.111.154 | docker-node3 |
docker-node1作為swarm管理節(jié)點(diǎn)
創(chuàng)建集群
創(chuàng)建主節(jié)點(diǎn)
[root@docker-node1 ~]# docker swarm init --advertise-addr 192.168.111.152
Swarm initialized: current node (ntnheq4yt2r4sr2aml1l13rkt) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join \
--token SWMTKN-1-1f3thb4mu0rfzlh3mn14i2xkn2q8yvz1r5c438x3zqsbu3dybt-0z6ie4bn7yb20pc1xnsed8z1s \
192.168.111.152:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
將node節(jié)點(diǎn)加入集群
[root@docker-node2 ~]# docker swarm join \
--token SWMTKN-1-1f3thb4mu0rfzlh3mn14i2xkn2q8yvz1r5c438x3zqsbu3dybt-0z6ie4bn7yb20pc1xnsed8z1s \
192.168.111.152:2377
[root@docker-node3 ~]# docker swarm join \
--token SWMTKN-1-1f3thb4mu0rfzlh3mn14i2xkn2q8yvz1r5c438x3zqsbu3dybt-0z6ie4bn7yb20pc1xnsed8z1s \
192.168.111.152:2377
在主節(jié)點(diǎn)查看集群信息
[root@docker-node1 ~]# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
2mfuq3t5oidnxasut31689ow1 docker-node3 Ready Active
cdp0z0tpqmfc5lpuzdd4gpk0x docker-node2 Ready Active
ntnheq4yt2r4sr2aml1l13rkt * docker-node1 Ready Active Leader
查看將節(jié)點(diǎn)加入集群命令
[root@docker-node1 ~]# docker swarm join-token worker
To add a worker to this swarm, run the following command:
docker swarm join \
--token SWMTKN-1-1f3thb4mu0rfzlh3mn14i2xkn2q8yvz1r5c438x3zqsbu3dybt-0z6ie4bn7yb20pc1xnsed8z1s \
192.168.111.152:2377
集群中創(chuàng)建容器
[root@docker-node1 ~]# docker service create --replicas 1 --name nginx -d nginx
- replicas: 創(chuàng)建副本數(shù)量
查看各節(jié)點(diǎn)容器分布狀況
[root@docker-node1 ~]# docker service ps nginx
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
js69hnpp9pf7 nginx.1 nginx:latest docker-node3 Running Running 27 minutes ago
qznuk4gl6osp nginx.2 nginx:latest docker-node2 Running Running 27 minutes ago
將節(jié)點(diǎn)移出集群
[root@docker-node1 ~]# docker swarm leave
swarm集群自定義網(wǎng)絡(luò)
因集群中跨主機(jī)間的docker容器網(wǎng)絡(luò)不通,所以需要通過自定義網(wǎng)絡(luò)將各主機(jī)間的容器連到同一個(gè)網(wǎng)段
查看docker 默認(rèn)網(wǎng)絡(luò)
[root@docker-node1 ~]# docker network list
NETWORK ID NAME DRIVER SCOPE
2145cfc9514e bridge bridge local
60a6c66c590d docker_gwbridge bridge local
3ef8c4c1c66e host host local
7wsqirbzvzvu ingress overlay swarm
665ae0d15f1b none null local
添加自定義網(wǎng)絡(luò)
[root@docker-node1 ~]# docker network create --driver overlay mynet
創(chuàng)建容器,并將容器加入自定義網(wǎng)絡(luò)
[root@docker-node1 ~]# docker service create --replicas 2 --network mynet --name nginx -d nginx