转自:https://www.cnblogs.com/jsonhc/p/7832642.html
安装之前的环境:
两个节点,节点1:192.168.101.14,用来创建manager1 machine,节点2:192.168.101.15,被节点1通过远程创建work1 machine
两个节点环境:都是基于centos7,节点1安装了docker daemon,节点2没有安装任何docker环境(节点1通过generic驱动来安装machine)
1、在节点1上安装docker-machine
[root@docker tools]# mv docker-machine /usr/local/bin/
[root@docker bin]# chmod +x docker-machine
docker-machine的二进制文件通过之前的文章进行下载,这里不详述了,安装好docker-machine之后,为节点1创建manager1 machine
[root@docker ~]# ssh-keygen
[root@docker ~]# ssh-copy-id root@192.168.101.14 将key传给自己
[root@docker ~]# docker-machine create -d generic --generic-ip-address=192.168.101.14 --generic-ssh-key ~/.ssh/id_rsa --generic-ssh-user=root manager1
由于是在节点1本机上创建machine,所以key传给自己,现在在节点1上通过docker-machine为节点2创建work1 machine
[root@docker ~]# ssh-copy-id root@192.168.101.15 将key传给15
[root@docker ~]# docker-machine create -d generic --generic-ip-address=192.168.101.15 --generic-ssh-key ~/.ssh/id_rsa --generic-ssh-user=root work1
这样操作之后,能够在节点2(192.168.101.15)上安装docker、docker-machine等环境
2、查看创建完成后的machine:
[root@manager1 ~]# docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
manager1 - generic Running tcp://192.168.101.14:2376 v17.09.0-ce
work1 - generic Running tcp://192.168.101.15:2376 v17.10.0-ce
3、在manager1节点上创建swarm,并将manager1节点作为swarm的管理节点:
[root@manager1 ~]# docker swarm init --advertise-addr 192.168.101.14
4、创建的swarm有一个manager1节点,也就是管理节点了,现在为swarm添加一个work节点,将work1节点添加到swarm集群中:
[root@work1 ~]# docker swarm join --token SWMTKN-1-3fcp657en1bt3kemq4okp411fzxsoet5ayvvos1ipxlogliejr-3qznuxm91ccgx0rgx6zhg6h4z 192.168.101.14:2377
This node joined a swarm as a worker.
在主机192.168.101.15也就是work1节点上执行此命令(将自己work1节点添加到swarm中去)
如果不知道添加work节点的命令,可以通过在manager1节点上执行下面命令,查看具体添加work节点的命令:
# docker swarm join-token worker
将得到后的命令结果在work节点上执行
5、在swarm集群中的管理节点上查看节点信息:
[root@manager1 ~]# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
fr67r1aa0oq3hkhd7knqev61w * manager1 Ready Active Leader
kfihkvme0tp6vao1j5894y3cl work1 Ready Active
还可以通过docker info查看更加详细的信息(当然还是在管理节点上执行)