Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排项目,但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合
从 Docker 1.12.0 版本开始,Docker Swarm 已经包含在 Docker 引擎中(docker swarm
),并且已经内置了服务发现工具,我们就不需要像之前一样,再配置 Etcd 或者 Consul 来进行服务发现配置了
1.首先需要选择2到3台机器,每台都确保先安装了docker环境
2.选择1台服务器作为leader,在该服务器上执行
docker swarm init
执行成功后,该服务器即成为leader,假如该服务器IP为:192.168.0.1。记住命令之后的提示生成的集群token,此后将根据该提示信息中的命令将其他服务器加入该swarm集群.可以通过使用docker info 或者 docker node ls 查看集群中的相关信息
Swarm: active
NodeID: 7fi2r4dw6895z6yvhlbyzfck6
Is Manager: true
ClusterID: l2zgs373cg0y6599t675yexcj
Managers: 1
Nodes: 1
Orchestration:
Task History Retention Limit: 5
3.添加节点到swarm集群中
所有节点执行
docker swarm join --token SWMTKN-1-3fzyz5knfbhw5iqlzxhb6dmzdtr0izno9nr7iqc5wid09uglh8-0mocmawzvm3xge6s37n5a48fw 192.168.0.1:2377
4.在master上查看集群节点的状态
docker node ls
5.swarm节点标签
找到分组表中服务器IP对应的节点,执行增加标签命令
docker node update --label-add 分组名=true 节点ID
如:
docker node update --label-add chain_web=true csejsh
6.执行完成后,依次确认各个节点的标签正确性。
docker node inspect csejsh
7.查看命令输入的labels,检查标签是否正确添加。
以下命令可查看swarm集群中的所有节点上的标签
docker node ls -q |
xargs docker node inspect -f
'{{.ID}}[{{.Description.Hostname}}]:{{.Spec.Labels}}'
8.创建chain overlay网络
创建Docker Swarm的网络,网络名称为chain ,类型为overlay。
docker network create -d overlay --attachable chain
网友评论