简介
Docker Swarm 是一个用于管理 Docker 集群的工具,它允许将多个 Docker 主机组合成一个虚拟的 Docker 主机,并通过统一的 API 管理容器。相比于单个 Docker 主机,Docker Swarm 可以提供更高的可用性和伸缩性,并且使容器应用更易于部署和管理。
在这篇文章中,我们将介绍 Docker Swarm 的一些基础概念和使用方法,并通过一个实例演示如何使用 Docker Swarm 部署和管理一个 Web 应用。
Docker Swarm 基础概念
在开始使用 Docker Swarm 之前,需要了解一些基础概念。以下是一些常见的术语和定义:
- Swarm: 一个 Docker 集群,由多个 Docker 主机组成。
- Node: 一个 Swarm 中的 Docker 主机。
- Manager node: Swarm 中负责管理容器调度和状态的 Docker 主机。
- Worker node: Swarm 中用于运行容器的 Docker 主机。
- Service: Swarm 中运行的一个 Docker 容器,可以包含多个副本。
- Task: 一个运行中的容器实例。
- Resource: CPU、内存等硬件资源,Docker Swarm 会为 Service 和 Task 分配资源。
Docker Swarm 实践
准备工作
在本地搭建 Docker Swarm 集群需要两台虚拟机节点,一台作为 Manager,一台作为 Worker。这里我们使用 VirtualBox 创建两台虚拟机,并分别安装 Ubuntu Server。
安装完成后,需要在 Manager 节点执行以下命令,初始化 Swarm:
docker swarm init --advertise-addr <MANAGER_IP>
执行该命令后,会生成一个 Token,该 Token 将用于 Worker 节点加入 Swarm 中。
然后在 Worker 节点上执行以下命令,加入到 Swarm 中:
docker swarm join --token <TOKEN> <MANAGER_IP>:<PORT>
现在我们已经创建了一个包含两个节点的 Docker Swarm 集群。
创建一个 Service
我们将使用 Docker Swarm 部署一个简单的 Web 应用。首先,需要创建一个 Service,并指定该 Service 要运行的镜像。执行以下命令:
docker service create --name web --replicas 3 -p 8080:80 nginx
该命令创建了一个名为 web
的 Service,指定该 Service 包含三个副本(即在 Swarm 中运行三个容器实例),并将容器的 80
端口映射到主机的 8080
端口。此外,该命令指定了 Docker Hub 上的 nginx
镜像。
查看 Service
可以使用以下命令查看 Swarm 中的 Service:
docker service ls
执行该命令后,会列出所有在 Swarm 中运行的 Service。
查看 Task
可以使用以下命令查看 Service 中的 Task:
docker service ps web
执行该命令后,会列出 web
Service 中运行的所有 Task。
扩展 Service
可以使用以下命令扩展 Service:
docker service scale web=5
该命令将 web
Service 的副本数扩展到了 5 个。
更新 Service
可以使用以下命令更新 Service:
docker service update --image nginx:1.19.4 web
该命令将 web
Service 的镜像更新为 nginx:1.19.4
。
删除 Service
可以使用以下命令删除 Service:
docker service rm web
该命令将删除 web
Service。
总结
Docker Swarm 是一个用于管理 Docker 集群的强大工具,可以提供更高的可用性和伸缩性,并且使容器应用更易于部署和管理。本文介绍了 Docker Swarm 的基本概念和使用方法,并通过一个实例演示了如何使用 Docker Swarm 部署和管理一个 Web 应用。
希望本文能够对前端开发者学习 Docker Swarm 有所帮助。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65937c72eb4cecbf2d833b53