Swarm 安装使用
Last updated
Last updated
docker 1.12 版本后都自带 swarm 命令,无需安装;更多内容 docker swarm --help docker 安装略,参考 'docker分类' 中 docker 几种方式,推荐源码安装
[root@swarm-1 ~]# cat /etc/hosts # 其他节点统一 hosts 内容
'''
10.10.181.249 swarm-1
10.10.181.248 swarm-2
10.10.181.246 swarm-3
# 需要开放:TCP 端口 2377:用于集群管理通信;
# 需要开放:TCP 和 UDP 端口 7946:用于节点之间通信
# 需要开放:UDP 端口 4789:overlay 网络流量
# 多块网卡: 必须使用--advertise-addr指定IP。
# 暴漏给外界调用socket 地址: --listen-addr, 默认 2377
docker swarm init --advertise-addr 10.10.181.249
"""
Swarm initialized: current node (4i8ii9h7gdoyo3owkyt97dd10) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-15g0or6yr285yunncbjqlwxippgee3m44wjp0hm6z9cokx7opr-63p3p1is1075okeg6ngy170l8 10.10.181.249:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
"""
docker swarm join --token SWMTKN-1-15g0or6yr285yunncbjqlwxippgee3m44wjp0hm6z9cokx7opr-63p3p1is1075okeg6ngy170l8 10.10.181.249:2377
# 从 worker 节点中提升为管理节点, 考虑到高可用,最好管理节点为奇数,最少为3个管理节点
docker node promote swarm-2 swarm-3
"""
[root@localhost ~]# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
4i8ii9h7gdoyo3owkyt97dd10 * swarm-1 Ready Active Leader 19.03.9
s6dr5w04tnnbkozdlzjus7e6i swarm-2 Ready Active Reachable 19.03.9
x0mw6qwgoaul3qtlhqrmm6b0d swarm-3 Ready Active Reachable 19.03.9
"""
# 这里可以测试一下,主关机后,是否可以正常运行
docker service create --replicas 1 -p 80:80 --name nginx nginx:latest
docker service scale nginx=50
docker service logs nginx
docker service rm nginx
# <了解一下即可>
docker search portainer
docker pull portainer/portainer
# 基于docker运行
docker run -d -p 9000:9000 \
--name portainer --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer
# 基于 swarm 运行,这里没有指定运行在管理节点,后面再优化,节目操作必须在管理节点
docker service create -p 9000:9000 --replicas 1 \
--mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
--mount type=volume,src=portainer_data,dst=/data \
portainer/portainer
# 浏览器访问:http://IP:9000