当前位置:首页 > Ubuntu > 正文

Ubuntu集群容器编排实战指南(从零开始搭建高可用Docker Swarm集群)

在当今云原生时代,Ubuntu集群容器编排已成为构建弹性、可扩展应用的基石。本文将手把手教你如何在 Ubuntu 系统上搭建一个基于 Docker Swarm 的轻量级容器编排环境,适合初学者快速入门。

Ubuntu集群容器编排实战指南(从零开始搭建高可用Docker Swarm集群) Ubuntu集群 容器编排 Docker Swarm Kubernetes 第1张

什么是容器编排?

容器编排是指自动化部署、管理、扩展和网络配置多个容器的过程。常见的工具包括 Docker SwarmKubernetes。本文以更轻量、易上手的 Docker Swarm 为例,帮助你快速掌握 Ubuntu集群上的容器编排基础。

准备工作

你需要至少两台运行 Ubuntu 20.04 或更高版本的服务器(物理机或虚拟机均可),并确保以下条件:

  • 所有节点能互相通过 SSH 访问
  • 已安装 Docker(版本 ≥ 20.10)
  • 关闭防火墙或开放必要端口(如 2377、7946、4789)

步骤一:在所有节点安装 Docker

在每台 Ubuntu 服务器上执行以下命令安装 Docker:

sudo apt updatesudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-releasecurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgecho \  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.io# 将当前用户加入 docker 组,避免每次使用 sudosudo usermod -aG docker $USERnewgrp docker  # 刷新组权限(或重新登录)

步骤二:初始化 Docker Swarm 集群

选择一台机器作为管理节点(Manager),执行以下命令:

# 替换 YOUR_MANAGER_IP 为该机器的内网 IPsudo docker swarm init --advertise-addr YOUR_MANAGER_IP

成功后,你会看到类似如下的输出:

Swarm initialized: current node (xxxxxx) is now a manager.To add a worker to this swarm, run the following command:    docker swarm join --token SWMTKN-1-xxxxxxxxxx YOUR_MANAGER_IP:2377

步骤三:添加工作节点(Worker)

在其他 Ubuntu 节点上,复制上一步中生成的 docker swarm join 命令并执行:

docker swarm join --token SWMTKN-1-xxxxxxxxxx YOUR_MANAGER_IP:2377

返回管理节点,验证集群状态:

docker node ls

你应该能看到所有节点(包括 Manager 和 Workers)都在线。

步骤四:部署一个测试服务

现在我们用 容器编排部署一个 Nginx 服务:

docker service create \  --name my-web \  --publish published=80,target=80 \  --replicas 3 \  nginx:latest

该命令会创建一个名为 my-web 的服务,启动 3 个副本,并将主机的 80 端口映射到容器的 80 端口。

查看服务状态:

docker service lsdocker service ps my-web

进阶建议

当你熟悉了 Docker Swarm 后,可以考虑迁移到功能更强大的 Kubernetes。Kubernetes 在大规模生产环境中更为常见,但学习曲线较陡。对于中小型项目或学习目的,Docker Swarm 已足够强大且易于维护。

总结

通过本教程,你已经掌握了在 Ubuntu集群上使用 Docker Swarm 进行容器编排的基础技能。无论你是 DevOps 新手还是开发者,这都是迈向云原生应用开发的重要一步。后续可探索服务滚动更新、健康检查、Overlay 网络等高级特性。

关键词回顾:Ubuntu集群容器编排Docker SwarmKubernetes