如何使用Docker Machine部署Swarm集群

简介:

大家好,今天我们来研究一下如何使用Docker Machine部署Swarm集群。Docker Machine提供了标准的Docker API 支持,所以任何可以与Docker守护进程进行交互的工具都可以使用Swarm来(透明地)扩增到多台主机上。Docker Machine可以用来在个人电脑、云端以及的数据中心里创建Docker主机。它为创建服务器,安装Docker以及根据用户设定来配置Docker客户端提供了便捷化的解决方案。我们可以使用任何驱动来部署swarm集群,并且swarm集群将由于使用了TLS加密具有极好的安全性。

下面是我提供的简便方法。

1. 安装Docker Machine

Docker Machine 在各种Linux系统上都支持的很好。首先,我们需要从Github上下载最新版本的Docker Machine。我们使用curl命令来下载最先版本Docker Machine ie 0.2.0。

64位操作系统:

 
  1. # curl -L https://github.com/docker/machine/releases/download/v0.2.0/docker-machine_linux-amd64 > /usr/local/bin/docker-machine

32位操作系统:

 
  1. # 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文件的权限进行修改。命令如下:

 
  1. # chmod +x /usr/local/bin/docker-machine

在做完上面的事情以后,我们要确保docker-machine已经安装正确。怎么检查呢?运行docker-machine -v指令,该指令将会给出我们系统上所安装的docker-machine版本。

 
  1. # docker-machine -v

为了让Docker命令能够在我们的机器上运行,必须还要在机器上安装Docker客户端。命令如下。

 
  1. # curl -L https://get.docker.com/builds/linux/x86_64/docker-latest > /usr/local/bin/docker
  2. # chmod +x /usr/local/bin/docker

2. 创建Machine

在将Docker Machine安装到我们的设备上之后,我们需要使用Docker Machine创建一个machine。在这篇文章中,我们会将其部署在Digital Ocean Platform上。所以我们将使用“digitalocean”作为它的Driver API,然后将docker swarm运行在其中。这个Droplet会被设置为Swarm主控节点,我们还要创建另外一个Droplet,并将其设定为Swarm节点代理。

创建machine的命令如下:

 
  1. # docker-machine create --driver digitalocean --digitalocean-access-token <API-Token> linux-dev

备注: 假设我们要创建一个名为“linux-dev”的machine。是用户在Digital Ocean Cloud Platform的Digital Ocean控制面板中生成的密钥。为了获取这个密钥,我们需要登录我们的Digital Ocean控制面板,然后点击API选项,之后点击Generate New Token,起个名字,然后在Read和Write两个选项上打钩。之后我们将得到一个很长的十六进制密钥,这个就是了。用其替换上面那条命令中的API-Token字段。

现在,运行下面的指令,将Machine 的配置变量加载进shell里。

 
  1. # eval "$(docker-machine env linux-dev)"

Docker Machine Digitalocean Cloud

Docker Machine Digitalocean Cloud

然后,我们使用如下命令将我们的machine标记为ACTIVE状态。

 
  1. # docker-machine active linux-dev

现在,我们检查它(指machine)是否被标记为了 ACTIVE "*"。

 
  1. # docker-machine ls

Docker Machine Active List

Docker Machine Active List

3. 运行Swarm Docker镜像

现在,在我们创建完成了machine之后。我们需要将swarm docker镜像部署上去。这个machine将会运行这个docker镜像,并且控制Swarm主控节点和从节点。使用下面的指令运行镜像:

 
  1. # docker run swarm create

Docker Machine Swarm Create

Docker Machine Swarm Create

如果你想要在32位操作系统上运行swarm docker镜像。你需要SSH登录到Droplet当中。

 
  1. # docker-machine ssh
  2. # docker run swarm create
  3. # exit

4. 创建Swarm主控节点

在我们的swarm image已经运行在machine当中之后,我们将要创建一个Swarm主控节点。使用下面的语句,添加一个主控节点。

 
  1. # docker-machine create \
  2. -d digitalocean \
  3. --digitalocean-access-token <DIGITALOCEAN-TOKEN>
  4. --swarm \
  5. --swarm-master \
  6. --swarm-discovery token://<CLUSTER-ID> \
  7. swarm-master

Docker Machine Swarm Master Create

Docker Machine Swarm Master Create

5. 创建Swarm从节点

现在,我们将要创建一个swarm从节点,此节点将与Swarm主控节点相连接。下面的指令将创建一个新的名为swarm-node的droplet,其与Swarm主控节点相连。到此,我们就拥有了一个两节点的swarm集群了。

 
  1. # docker-machine create \
  2. -d digitalocean \
  3. --digitalocean-access-token <DIGITALOCEAN-TOKEN>
  4. --swarm \
  5. --swarm-discovery token://<TOKEN-FROM-ABOVE> \
  6. swarm-node

Docker Machine Swarm Nodes

Docker Machine Swarm Nodes

6. 与Swarm主控节点连接

现在,我们连接Swarm主控节点以便我们可以依照需求和配置文件在节点间部署Docker容器。运行下列命令将Swarm主控节点的Machine配置文件加载到环境当中。

 
  1. # eval "$(docker-machine env --swarm swarm-master)"

然后,我们就可以跨节点地运行我们所需的容器了。在这里,我们还要检查一下是否一切正常。所以,运行docker info命令来检查Swarm集群的信息。

 
  1. # docker info

总结

我们可以用Docker Machine轻而易举地创建Swarm集群。这种方法有非常高的效率,因为它极大地减少了系统管理员和用户的时间消耗。在这篇文章中,我们以Digital Ocean作为驱动,通过创建一个主控节点和一个从节点成功地部署了集群。其他类似的驱动还有VirtualBox,Google Cloud Computing,Amazon Web Service,Microsoft Azure等等。这些连接都是通过TLS进行加密的,具有很高的安全性。如果你有任何的疑问,建议,反馈,欢迎在下面的评论框中注明以便我们可以更好地提高文章的质量!

原文发布时间为:2015-08-03



本文来自云栖社区合作伙伴“Linux中国

目录
相关文章
|
15天前
|
存储 测试技术 Linux
【Docker项目实战】使用Docker部署bender个人仪表板
【4月更文挑战第2天】使用Docker部署bender个人仪表板
28 1
|
24天前
|
存储 机器学习/深度学习 中间件
快速上手 Elasticsearch:Docker Compose 部署详解
本文介绍了如何使用Docker Compose快速搭建Elasticsearch学习环境。Elasticsearch是一款用于实时搜索和分析的分布式中间件,适用于多种场景,如搜索、日志分析、机器学习等。首先,创建docker网络,拉取最新版8.12.2镜像。接着,编写docker-compose.yml文件,配置单节点集群,设置端口映射、内存限制及数据卷挂载。然后,创建并配置数据卷目录,允许远程访问和跨域。最后,启动服务并验证,通过浏览器访问确认服务运行正常。本文为初学者提供了一个简便的Elasticsearch部署方法。
139 4
快速上手 Elasticsearch:Docker Compose 部署详解
|
16天前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
76 0
|
5天前
|
测试技术 Linux 数据安全/隐私保护
【Docker项目实战】使用Docker部署Seatsurfing预订座位系统
【4月更文挑战第12天】使用Docker部署Seatsurfing预订座位系统
31 3
|
8天前
|
JavaScript 前端开发 Docker
全栈开发实战:结合Python、Vue和Docker进行部署
【4月更文挑战第10天】本文介绍了如何使用Python、Vue.js和Docker进行全栈开发和部署。Python搭配Flask创建后端API,Vue.js构建前端界面,Docker负责应用的容器化部署。通过编写Dockerfile,将Python应用构建成Docker镜像并运行,前端部分使用Vue CLI创建项目并与后端交互。最后,通过Nginx和另一个Dockerfile部署前端应用。这种组合提升了开发效率,保证了应用的可维护性和扩展性,适合不同规模的企业使用。
|
12天前
|
测试技术 Linux 数据安全/隐私保护
【Docker项目实战】使用Docker部署PicoShare共享文件平台
【4月更文挑战第5天】使用Docker部署PicoShare共享文件平台
46 4
|
17天前
|
测试技术 Linux Docker
Docker部署RPG网页小游戏
Docker部署RPG网页小游戏
44 2
|
19天前
|
Linux Shell 开发工具
CentOS8中Docker安装及部署
CentOS8中Docker安装及部署
67 0
|
19天前
|
关系型数据库 MySQL Nacos
【深入浅出Nacos原理及调优】「实战开发专题」采用Docker容器进行部署和搭建Nacos服务以及“坑点”
【深入浅出Nacos原理及调优】「实战开发专题」采用Docker容器进行部署和搭建Nacos服务以及“坑点”
44 1
|
24天前
|
Nacos 数据库 Docker
nacos常见问题之docker部署的seata,成功注册到nacos运行报错如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
35 2