什么是 Docker Swarm?
Docker Swarm 是 Docker 官方提供的一个容器编排工具,它可以让您轻松地管理多个 Docker 容器,实现容器的自动化部署、伸缩和高可用等功能,是构建分布式应用的理想选择。
安装 Docker Swarm
在使用 Docker Swarm 之前,您需要先安装 Docker 环境。如果您还没有安装 Docker,可以参考官方文档进行安装。
安装完成后,您需要启用 Docker Swarm 模式。在 Docker 17.12 及以上版本中,Swarm 模式已经默认启用,如果您使用的是旧版本的 Docker,可以通过以下命令启用 Swarm 模式:
$ docker swarm init
创建 Docker Swarm 集群
要创建一个 Docker Swarm 集群,您需要至少两个节点。一个节点可以是 Docker 主机、虚拟机或云服务器。在本教程中,我们将使用两台虚拟机来创建 Swarm 集群。
步骤一:创建虚拟机
我们将使用 VirtualBox 和 Vagrant 来创建两台虚拟机。在安装 VirtualBox 和 Vagrant 后,您可以通过以下命令创建虚拟机:
$ vagrant init ubuntu/xenial64 $ vagrant up
这将会创建一个基于 Ubuntu 16.04 的虚拟机。
步骤二:加入集群
在第一台虚拟机上执行以下命令,将其加入到 Swarm 集群中:
$ docker swarm init --advertise-addr <第一台虚拟机的 IP 地址>
执行成功后,您将获得一条 Token,类似于:
Swarm initialized: current node (xxxx) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token xxxxx <第一台虚拟机的 IP 地址>:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
将这条 Token 复制下来,我们将在第二台虚拟机上使用它来加入到集群中。
在第二台虚拟机上执行以下命令,将其加入到 Swarm 集群中:
$ docker swarm join --token <Token> <第一台虚拟机的 IP 地址>:2377
执行成功后,您可以在第一台虚拟机上执行以下命令,查看 Swarm 集群的状态:
$ docker node ls
您将看到两个节点,其中一个是 Manager 节点,另一个是 Worker 节点。
部署应用程序
现在,我们已经成功创建了一个 Swarm 集群,下面我们将在集群中部署一个简单的应用程序。
步骤一:创建服务
我们将使用一个简单的 Node.js 应用程序作为示例。在第一台虚拟机上创建一个文件夹,将以下代码保存为 app.js:
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ------ - ----------------------- ---- -- - ------------------- -------------- --------- --- ------------------- -- -- - ------------------- ------- -- ---- ------- ---
在该文件夹中创建一个 Dockerfile,内容如下:
-- -------------------- ---- ------- ---- ------- ------- ---- ---- ------------- -- --- --- ------- ---- - - ------ ---- --- - ------ ------- -
接下来,使用以下命令将应用程序构建为 Docker 镜像:
$ docker build -t myapp .
这将创建一个名为 myapp 的 Docker 镜像。
接下来,我们将使用 Docker Swarm 部署该应用程序。在第一台虚拟机上执行以下命令:
$ docker service create --name myapp --replicas 3 -p 3000:3000 myapp
这将创建一个名为 myapp 的服务,该服务将在 Swarm 集群中创建 3 个副本,并将容器的 3000 端口映射到主机的 3000 端口上。
您可以使用以下命令查看服务的状态:
$ docker service ls
步骤二:测试应用程序
现在,我们已经成功部署了应用程序,可以使用以下命令测试它:
$ curl <第一台虚拟机的 IP 地址>:3000
您将看到输出 Hello World!,这表明应用程序已经成功运行。
总结
在本教程中,我们介绍了如何使用 Docker Swarm 创建集群,并在集群中部署一个简单的应用程序。Docker Swarm 是一个非常强大的容器编排工具,可以帮助您轻松管理多个 Docker 容器,实现容器的自动化部署、伸缩和高可用等功能。如果您正在构建分布式应用程序,Docker Swarm 是一个非常值得尝试的工具。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/662f6827d3423812e4d5d162