大家好,今天我们来学习一下如何使用DockerMachine部署Swarm集群。DockerMachine提供标准的DockerAPI支持,因此任何可以与Docker守护进程交互的工具都可以使用Swarm来(透明地)扩展到多个主机。DockerMachine可用于在个人计算机、云端和私有数据中心创建Docker主机。它为创建服务器、安装Docker以及根据用户设置配置Docker客户端提供了便捷的解决方案。我们可以使用任何驱动程序来部署swarm集群,并且由于使用了TLS加密,swarm集群将具有极好的安全性。这是我提供的简单方法。1.安装DockerMachineDockerMachine在各种Linux系统上都有很好的支持。首先,我们需要从Github下载最新版本的DockerMachine。我们使用curl命令下载第一个版本的DockerMachineie0.2.0。64位操作系统:#curl-Lhttps://github.com/docker/machine/releases/download/v0.2.0/docker-machine_linux-amd64>/usr/local/bin/docker-machine32位操作system:#curl-Lhttps://github.com/docker/machine/releases/download/v0.2.0/docker-machine_linux-i386>/usr/local/bin/docker-machine下载第一版DockerMachine后,我们需要修改/usr/local/bin/目录下docker-machine文件的权限。命令如下:#chmod+x/usr/local/bin/docker-machine完成以上操作后,我们需要确保docker-machine安装正确。如何检查?运行docker-machine-v命令,这将给出我们系统上安装的docker-machine的版本。#docker-machine-vInstallingDockerMachine为了让Docker命令在我们的机器上运行,Docker客户端也必须安装在机器上。命令如下。#curl-Lhttps://get.docker.com/builds/linux/x86_64/docker-latest>/usr/local/bin/docker#chmod+x/usr/local/bin/docker2.在Docker中创建机器在我们的设备上安装机器后,我们需要使用DockerMachine创建机器。在本文中,我们将把它部署在DigitalOceanPlatform上。所以我们将使用“digitalocean”作为它的DriverAPI,然后在里面运行dockerswarm。这个Droplet将被设置为Swarm主节点,我们将创建另一个Droplet并将其设置为Swarm节点代理。创建机器的命令如下:#docker-machinecreate--driverdigitalocean--digitalocean-access-tokenlinux-dev备注:假设我们要创建一个名为“linux-dev”的机器。是用户在数字海洋云平台的数字海洋控制面板中生成的密钥。为了获得这个密钥,我们需要登录我们的DigitalOcean控制面板,然后点击API选项,然后点击GenerateNewToken,给它起个名字,然后勾选Read和Write这两个选项。之后我们会得到一个很长的十六进制密钥,仅此而已。用它替换上面命令中的API-Token字段。现在,运行以下命令将机器配置变量加载到shell中。#eval"$(docker-machineenvlinux-dev)"DockerMachineDigitaloceanCloud然后,我们使用以下命令将我们的机器标记为ACTIVE。#docker-machineactivelinux-dev现在,我们检查它(机器)是否被标记为ACTIVE“*”。#docker-machinelsDockerMachineActiveList3.运行SwarmDocker镜像现在,在我们创建了机器之后。我们需要部署swarmdocker镜像。这台机器将运行docker镜像并控制Swarm主节点和从节点。使用以下命令运行映像:#dockerrunswarmcreateDockerMachineSwarmCreate如果要在32位操作系统上运行swarmdocker映像。您需要通过SSH进入Droplet。#docker-machinessh#dockerrunswarmcreate#exit#p#4。创建一个Swarm主节点在我们的swarm镜像在机器上运行之后,我们将创建一个Swarm主节点。使用以下语句添加主控节点。#docker-machinecreate\-ddigitalocean\--digitalocean-access-token--swarm\--swarm-master\--swarm-discoverytoken://<集群ID>\swarm-masterDockerMachineSwarmMasterCreate5。创建一个Swarm从节点现在,我们将创建一个swarm从节点,它将连接到Swarm主节点。以下命令将创建一个名为swarm-node的新droplet,它连接到Swarm主节点。此时,我们有一个双节点swarm集群。#docker-machinecreate\-ddigitalocean\--digitalocean-access-token--swarm\--swarm-discoverytoken://\swarm-nodeDockerMachineSwarm节点6。连接Swarmmaster节点现在,我们连接Swarmmaster节点,以便我们可以根据需求和配置文件在节点之间部署Docker容器。运行以下命令将Swarm主节点的Machine配置文件加载到环境中。#eval"$(docker-machineenv--swarmswarm-master)"然后,我们就可以跨节点运行我们需要的容器了。在这里,我们还检查是否一切正常。因此,运行dockerinfo命令查看Swarm集群的信息。#dockerinfo总结我们可以很容易地用DockerMachine创建一个Swarm集群。这种方法非常有效,因为它大大减少了系统管理员和用户的时间消耗。在本文中,我们通过使用DigitalOcean作为驱动程序创建一个主节点和一个从节点,成功部署了一个集群。其他类似的驱动程序还有VirtualBox、GoogleCloudComputing、AmazonWebService、MicrosoftAzure等,这些连接都是通过TLS加密的,安全级别很高。如果您有任何问题、建议、反馈,请在下方评论区指出,以便我们更好的提高文章质量!