如何使用Docker Machine调配群集
大家好,今天我们将学习如何使用Docker Machine部署Swarm集群。
它提供了标准的Docker API,因此可以与Docker守护程序通信的任何工具都可以使用Swarm透明地扩展到多个主机。
Docker Machine是一款可在我们的计算机,云提供商和我们自己的数据中心内部创建Docker主机的应用程序。
它提供了简单的解决方案,用于创建服务器,在服务器上安装Docker,然后根据用户的配置和要求配置Docker客户端。
我们可以为群集集群提供所需的任何驱动程序,并且通过TLS加密得到高度保护。
1.安装Docker Machine
Docker Machine在每个Linux操作系统上都提供出色的支持。
首先,我们需要从Github下载最新版本的Docker Machine。
其中我们将使用curl下载最新版本的Docker Machine,即0.2.0。
对于64位操作系统
# curl -L https://github.com/docker/machine/releases/download/v0.2.0/docker-machine_linux-amd64 > /usr/local/bin/docker-machine
对于32位操作系统
# curl -L https://github.com/docker/machine/releases/download/v0.2.0/docker-machine_linux-i386 > /usr/local/bin/docker-machine
下载最新版本的Docker Machine之后,我们将使用以下命令在/usr/local/bin /可执行文件下创建名为docker-machine的文件。
# chmod +x /usr/local/bin/docker-machine
完成上述操作后,我们将确保已成功安装docker-machine。
要检查它,我们可以运行docker-machine -v,它将提供安装在我们系统中的docker-machine版本的输出。
# docker-machine -v
要在我们的机器上启用Docker命令,请通过运行以下命令确保还安装Docker客户端。
# curl -L https://get.docker.com/builds/linux/x86_64/docker-latest > /usr/local/bin/docker # chmod +x /usr/local/bin/docker
2.创建机器
将Machine安装到正常工作的PC或者设备中后,我们将继续使用Docker Machine创建计算机。
其中在本教程中,我们将在Digital Ocean Platform中部署一台计算机,因此我们将使用“ digitalocean”作为其驱动程序API,然后docker swarm将运行到该Droplet中,并将其进一步配置为Swarm Master和另一个将创建一个droplet,将其配置为Swarm Node Agent。
因此,要创建计算机,我们需要运行以下命令。
# docker-machine create --driver digitalocean --digitalocean-access-token <API-Token> linux-dev
注意:其中linux-dev是我们要创建的计算机的名称。
<API令牌>是可以从Digital Ocean Cloud Platform帐户持有者的Digital Ocean Control Panel生成的安全密钥。
要检索该密钥,我们只需要登录到数字海洋控制面板,然后单击API,然后单击Generate New Token,并在Read和Write上给它打上一个名称打勾。
然后我们将得到一个长的十六进制密钥,即现在的<API-Token>,只需将其替换为上面的命令即可。
现在,要将机器配置加载到shell中,我们运行命令,请运行以下命令。
# eval "$(docker-machine env linux-dev)"
然后,通过运行以下命令将我们的计算机标记为“活动”。
# docker-machine active linux-dev
现在,我们将检查其是否被标记为“ *”。
# docker-machine ls
3.运行Swarm Docker镜像
现在,在完成所需机器的创建之后。
我们将在活动机器中部署swarm docker镜像。
这台机器将运行docker镜像,并控制Swarm主节点和节点。
要运行该镜像,我们只需运行以下命令即可。
# docker run swarm create
如果我们尝试在运行Docker Machine的计算机中使用32位操作系统运行swarm docker镜像,则需要SSH进入Droplet。
# docker-machine ssh #docker run swarm create #exit
4.创建群主
现在,在将机器和集群镜像运行到机器中之后,我们现在将创建一个Swarm Master。
这还将把主节点添加为节点。
为此,这是下面的命令。
# docker-machine create \ -d digitalocean \ --digitalocean-access-token <DIGITALOCEAN-TOKEN> --swarm \ --swarm-master \ --swarm-discovery token://<CLUSTER-ID> \ swarm-master
5.创建群节点
现在,我们将创建一个将与Swarm Master连接的swarm节点。
下面的命令将创建一个新的Droplet,将其命名为swarm-node并将与Swarm Master作为节点连接。
这将在两个节点之间创建一个Swarm集群。
# docker-machine create \ -d digitalocean \ --digitalocean-access-token <DIGITALOCEAN-TOKEN> --swarm \ --swarm-discovery token://<TOKEN-FROM-ABOVE> \ swarm-node
6.连接到Swarm Master
现在,我们连接到Swarm Master,以便我们可以根据需求和配置跨节点部署Docker容器。
要将Swarm Master的Machine配置加载到我们的环境中,我们可以运行以下命令。
# eval "$(docker-machine env --swarm swarm-master)"
之后,我们可以跨节点运行我们选择的所需容器。
其中我们将检查一切是否正常。
因此,我们将运行docker info来检查有关Swarm集群的信息。
# docker info