利用docker-machine安装swarm

安装之前的环境:

两个节点,节点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查看更加详细的信息(当然还是在管理节点上执行)

原文地址:https://www.cnblogs.com/jsonhc/p/7832642.html