测试环境:
node
Manager:nginx
192.168.209.129 Docker_Node1 web
Node:docker
192.168.209.130 Docker_Node2centos
系统及软件:centos 7.2 docker 1.12.0bash
1.初始化swarm集群ide
[root@Docker-Node1 ~]# docker swarm init测试
还能够用参数:spa
--listen-addr 指定监听(格式: <ip|interface>[:port]) (默认:0.0.0.0:2377)3d
--advertise-addr 指定通告网卡(格式: <ip|interface>[:port])
执行后返回信息中包括两个命令,分别是加入node和加入manager
2.把Docker_Node2加入集群,根据提示的命令
[root@Docker-Node2 ~]# docker swarm join --token \
SWMTKN-1-1toyv27479tfrruwqj14l7dc6gsju4w4u8957wikn59kjlqqdu-dj71uypb64ckw0wylvq7svmzw\
192.168.209.129:2377
执行完成后收到This node joined a swarm as a worker.
[root@Docker-Node1 ~]# docker swarm --help
Commands: init Initialize a swarm join Join a swarm as a node and/or manager join-token Manage join tokens update Update the swarm leave Leave a swarm
3.查看集群状态信息
Manager:
[root@Docker-Node1 ~]# docker info
Swarm: active NodeID: awsh1ay3dvghh9kuuoipbnanj Is Manager: true ClusterID: eelrml6monrirrlp1qzou45nb Managers: 1 Nodes: 2 Orchestration: Task History Retention Limit: 5 Raft: Snapshot interval: 10000 Heartbeat tick: 1 Election tick: 3 Dispatcher: Heartbeat period: 5 seconds CA configuration: Expiry duration: 3 months Node Address: 192.168.209.129
Node:
[root@Docker-Node1 ~]# docker info
Swarm: active NodeID: 6tm7yidwzw69c8byp5rtoeqel Is Manager: false Node Address: 192.168.209.130
查看node 信息
[root@Docker-Node1 ~]# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 6tm7yidwzw69c8byp5rtoeqel Docker-Node2 Ready Active awsh1ay3dvghh9kuuoipbnanj * Docker-Node1 Ready Active Leader
还能够用inspect查看详细信息
[root@Docker-Node1 ~]# docker node inspect 6tm7yidwzw69c8byp5rtoeqel
[root@Docker-Node1 ~]# docker node --help
Commands: demote Demote a node from manager in the swarm inspect Display detailed information on one or more nodes ls List nodes in the swarm promote Promote a node to a manager in the swarm rm Remove a node from the swarm ps List tasks running on a node update Update a node
Docker service
1.建立nginx服务
[root@Docker-Node1 ~]# docker service create --name web --publish 80:80 --replicas 2 nginx
6x1ymmvsugcxtib6sjyjat4yd
注:
docker service create 建立service命令 --name 名称 --publish 指定对外提供服务端口 --replicas 运行容器数量 nginx 镜像名称
2.查看建立的service
[root@Docker-Node1 ~]# docker service ls
查看运行状态,这里看到分别在Docker-Node1、Docker-Node2各运行一个容器
[root@Docker-Node1 ~]# docker service ps web
3.在线扩容,web的容器数量改为5
[root@Docker-Node1 ~]# docker service scale web=5
web scaled to 5
4.在线缩减
[root@Docker-Node1 ~]# docker service scale web=3
web scaled to 3
[root@Docker-Node1 ~]# docker service --help
Commands: create Create a new service inspect Display detailed information on one or more services ps List the tasks of a service ls List services rm Remove a service scale Scale one or multiple services update Update a service
参考:https://docs.docker.com/engine/swarm/