Docker 是一种流行的容器化技术,可以轻松地将应用程序打包成可移植的容器,以便在不同的环境中运行。Docker Swarm 则是 Docker 的一个集群管理工具,通过它可以轻松地管理多个 Docker 节点,实现高可用、负载均衡等功能。
本文将介绍如何使用 Docker Swarm 搭建一个集群,并展示如何在其中运行一个 Node.js 应用程序。
搭建 Docker Swarm 集群
搭建 Docker Swarm 集群需要准备多个 Docker 节点,这些节点可以位于同一台机器上,也可以分布在不同的机器上。在本文中,我们将在同一台机器上搭建一个包含 3 个节点的集群。
准备工作
在开始之前,需要先安装 Docker。可以参考 官方文档 安装 Docker。
初始化 Swarm
首先,需要在其中一个节点上初始化 Swarm。
------ ----- ----
执行命令后,会输出一个类似于下面的信息:
----- ------------ ------- ---- -------- -- --- - -------- -- --- - ------ -- ---- ------ --- --- --------- -------- ------ ----- ---- ------- -------------- ------------------ -- --- - ------- -- ---- ------ --- ------- ----- ---------- -------- --- ------ --- -------------
其中,abc123
是当前节点的 ID,192.168.0.100
是当前节点的 IP 地址。这些信息将在后面的操作中用到。
加入集群
接下来,需要将其他节点加入到集群中。可以在其他节点上执行类似于下面的命令:
------ ----- ---- ------- -------------- ------------------
其中,SWMTKN-1-xxxxx
是初始化 Swarm 时生成的 token,192.168.0.100
是 Swarm manager 节点的 IP 地址。
如果一切正常,执行命令后会输出类似于下面的信息:
---- ---- ------ - ----- -- - -------
查看节点
可以使用下面的命令查看节点状态:
------ ---- --
执行命令后,会输出类似于下面的信息:
-- -------- ------ ------------ ------- ------ ------ ------- ------- ----- ----- ------ ------ ------- ------ ----- ----- ------ ------- ------ ----- ----- ------ -------
其中,*
表示当前节点为 Swarm manager 节点。
运行 Node.js 应用程序
接下来,将展示如何在 Swarm 集群中运行一个 Node.js 应用程序。
编写 Dockerfile
首先,需要编写一个 Dockerfile 文件,用于构建 Docker 镜像。
---- ------- ------- ---- ---- ------------- -- --- --- ------- ---- - - ------ ---- --- - ------ ------- -
上面的 Dockerfile 中,首先指定了 Node.js 的版本。然后,将当前目录下的 package*.json
文件复制到 Docker 容器中,并执行 npm install
安装依赖。接着,将当前目录下的所有文件复制到 Docker 容器中。最后,指定了应用程序的监听端口为 3000,并执行 npm start
启动应用程序。
构建镜像
在完成 Dockerfile 编写之后,可以使用下面的命令构建 Docker 镜像:
------ ----- -- ----- -
其中,myapp
是镜像的名称,.
表示当前目录。
运行服务
接下来,可以使用下面的命令在 Swarm 集群中运行服务:
------ ------- ------ ------ ----- ---------- - -- --------- -----
其中,myapp
是服务的名称,3
表示服务的副本数,3000:3000
表示将容器的 3000 端口映射到主机的 3000 端口,myapp
表示使用上一步构建的镜像。
查看服务
可以使用下面的命令查看服务状态:
------ ------- --
执行命令后,会输出类似于下面的信息:
-- ---- ---- -------- ----- ----- ------------ ----- ---------- --- ----- ----------------
其中,3/3
表示服务的副本数已经全部启动。
可以使用下面的命令查看服务的详细信息:
------ ------- -- -----
执行命令后,会输出类似于下面的信息:
-- ---- ----- ---- ------- ----- ------- ----- ----- ----- ------------ ------- ----- ----- ------- ------- - ------- --- ------------ ------- ----- ----- ------- ------- - ------- --- ------------ ------- ----- ----- ------- ------- - ------- ---
其中,DESIRED STATE
和 CURRENT STATE
分别表示服务的期望状态和当前状态。
访问应用程序
最后,可以使用浏览器访问应用程序。如果当前机器的 IP 地址为 192.168.0.100
,则可以访问 http://192.168.0.100:3000
查看应用程序。
总结
本文介绍了如何使用 Docker Swarm 搭建一个集群,并展示了如何在其中运行一个 Node.js 应用程序。通过本文的学习,读者可以了解 Docker Swarm 的基本概念和使用方法,并可以尝试在自己的环境中搭建一个 Swarm 集群。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65d5a656add4f0e0ffd53c1a