参考资料

  1. JupyterHub 是一个多用户版本的 Jupyter Notebook
  2. Stirling-PDF 是一个开源的 PDF 工具集
  3. ClearLinux 是由 Intel 开发的一个基于 Linux 的操作系统
  4. Joomla 是一款开源的内容管理系统
  5. docker安装mysql详细说明以及案例
  6. Apache Cassandra 是一个开源的分布式 NoSQL 数据库系统
  7. Couchbase 是一个高性能、分布式 NoSQL 数据库,支持键值存储、文档存储和全文搜索功能。
  8. Groovy 是一种基于 JVM 的动态编程语言

Docker Swarm 是 Docker 原生的集群管理工具

Docker Swarm 简介

Docker Swarm 是 Docker 原生的集群管理工具,用于将多个 Docker 主机组成一个虚拟的集群,统一管理容器化应用。

特点

  1. 原生集成:与 Docker Engine 深度集成,无需额外安装。

  2. 简单易用:命令与 Docker CLI 一致,学习成本低。

  3. 高可用性:支持多管理节点(Manager)自动容错。

  4. 服务发现与负载均衡:内置 DNS 轮询和 VIP 负载均衡。

  5. 滚动更新:支持服务灰度发布和回滚。

  6. 跨主机网络:通过 overlay 网络实现容器跨主机通信。

最新更新内容及时间

  • v1.2.9(2023年10月):

    • 修复节点自动恢复的稳定性问题。

    • 优化服务任务调度的性能。

    • 安全补丁更新(CVE-2023-XXXXX)。

镜像下载地址

  • 官方镜像库:docker pull swarm:latest

官网地址

文档地址

Docker 安装示例

# 在第一个节点初始化 Swarm(替换为实际IP)
docker swarm init --advertise-addr <MANAGER_IP>

# 添加工作节点(从初始化命令输出的提示中获取令牌)
docker swarm join --token <TOKEN> <MANAGER_IP>:2377

docker-compose.yml 示例(Stack 部署)

version: '3.8'
services:
  web:
    image: nginx:alpine
    ports:
      - "80:80"
    deploy:
      replicas: 3
      update_config:
        parallelism: 2
        delay: 10s
      restart_policy:
        condition: on-failure

常用错误及解决

  1. 节点无法加入集群

    • 检查防火墙是否开放 2377/tcp(管理端口)、7946/tcp+udp(节点通信)、4789/udp(overlay 网络)。

    • 确保所有节点时间同步(NTP)。

  2. 服务卡在 Pending 状态

    • 检查资源是否充足:docker node inspect <NODE_ID> --pretty

    • 使用 docker service ps <SERVICE_NAME> 查看具体错误。

  3. Overlay 网络不通

    • 确认所有节点已启用 IP 转发:sysctl net.ipv4.ip_forward=1

  4. Manager 节点不可用

    • 恢复单 Manager 集群:docker swarm init --force-new-cluster

    • 多 Manager 集群需保证 ≥3 个节点避免脑裂。