0Pricing
Docker & DevOps Fundamentals · 课时

向 Swarm 部署服务

在 Swarm 集群中以服务的形式部署和扩展容器化应用,并管理其生命周期

向 Swarm 部署服务 是 CoddyKit 上的免费 Docker & DevOps Fundamentals 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Docker & DevOps Fundamentals 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Docker & DevOps Fundamentals 课程共包含 4 节课。

什么是 Docker Swarm 服务?

在 Docker Swarm 中,服务定义了您希望如何在集群中运行容器化应用。

您无需运行单个容器,而是定义一个服务来告诉 Swarm:“我希望使用此镜像运行 X 个实例,在这些端口上运行,并采用这些设置。”

随后,Swarm 会确保维持您设定的期望状态;如果容器发生故障,它还会自动重新启动容器。

向 Swarm 部署服务 — 插图 1

服务与容器

您可以这样理解:

  • 容器是应用的单个实例。
  • 服务是在 Swarm 中运行一个或多个相同容器(称为任务)的蓝图。

服务通过分配任务并自动处理故障来提供高可用性和可扩展性。

部署您的第一个服务

docker service create 命令用于将应用作为服务部署到 Swarm 集群中。让我们创建一个简单的 Nginx Web 服务器服务。

请尝试运行以下示例:

docker service create \
  --name my-web-app \
  -p 80:80 \
  --replicas 1 \
  nginx

了解服务创建

让我们分解刚才使用的命令:

  • --name my-web-app:为服务设置一个易于记忆的名称。
  • -p 80:80:将 Swarm 节点上的 80 端口映射到容器内的 80 端口。
  • --replicas 1:告诉 Swarm 维护此服务的一个运行实例(任务)。
  • nginx:指定服务任务所使用的 Docker 镜像。

检查您的服务

创建服务后,您需要验证其状态并查看正在运行的任务。请使用以下命令:

  • docker service ls:列出 Swarm 中的所有服务。
  • docker service ps <service_name>:显示与某个服务关联的各个任务(容器)。
docker service ls
docker service ps my-web-app

扩展您的服务

Docker Swarm 的核心优势之一是易于扩展。您可以使用一条命令增加服务的运行实例数(副本数)。

让我们将 my-web-app 扩展到三个副本:

docker service scale my-web-app=3

缩减您的服务

同样,您也可以轻松缩减服务,以减少资源使用或管理流量。Swarm 会平稳地停止多余容器,同时保持其余容器运行。

让我们将 my-web-app 的副本数缩减回一个:

docker service scale my-web-app=1

更新服务

当您需要部署应用的新版本或更改服务设置时,docker service update 会执行滚动更新。Swarm 会逐个更新任务,确保应用始终可用。

让我们将 Nginx 服务更新到指定版本:

docker service update --image nginx:1.25 my-web-app

移除服务

当不再需要某项服务时,您可以将其从 Swarm 中移除。这会停止所有关联任务,并从集群中删除服务定义。

要移除我们的示例 Web 应用服务:

docker service rm my-web-app

服务管理测验

您有一个名为 my-backend 的服务,该服务运行 3 个副本并使用镜像 my-backend:v1。您需要将其更新为使用新镜像 my-backend:v2,并将副本数增加到 5。

回顾:Swarm 服务

做得很好!您已经掌握了在 Docker Swarm 中以服务形式部署和管理应用的基本知识。

  • 服务定义容器化应用的期望状态。
  • 您学习了如何使用 docker service create 创建服务。
  • 我们介绍了如何检查、扩展(docker service scale)和更新(docker service update)服务。
  • 最后,您可以使用 docker service rm 移除服务。

服务是构建可扩展且高可靠 Swarm 集群应用的基础!

常见问题解答

「向 Swarm 部署服务」课时是免费的吗?

是的 — 「向 Swarm 部署服务」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Docker & DevOps Fundamentals 课程的其余内容,请升级到 CoddyKit PRO。 Docker & DevOps Fundamentals 课程共包含 4 节课。

「向 Swarm 部署服务」这节课中我会学到什么?

在 Swarm 集群中以服务的形式部署和扩展容器化应用,并管理其生命周期 你通过在浏览器中直接运行的动手代码来练习 Docker & DevOps Fundamentals,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Docker & DevOps Fundamentals 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Docker & DevOps Fundamentals 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「向 Swarm 部署服务」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Docker & DevOps Fundamentals 课中编写并运行代码吗?

能。每节 Docker & DevOps Fundamentals 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Docker Swarm 简介
  2. 设置 Swarm 集群
  3. 向 Swarm 部署服务
  4. Swarm 中的扩缩容与滚动更新
← 返回 Docker & DevOps Fundamentals