温馨提示×

ubuntu docker怎么集群

小樊
34
2026-10-01 10:19:15
栏目: 智能运维

在 Ubuntu 上搭建 Docker 集群,常见做法有几种,取决于你的需求(简单容器编排 / 生产级集群)。下面按从易到难给你讲清楚。


一、最常用方案:Docker Swarm(官方原生,推荐入门)

适合:

  • 多台 Ubuntu 服务器
  • 快速搭建集群
  • 官方原生,无需额外组件

1️⃣ 所有节点安装 Docker

sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker

2️⃣ 初始化 Manager 节点(主节点)

sudo docker swarm init --advertise-addr <MANAGER_IP>

示例:

sudo docker swarm init --advertise-addr 192.168.1.10

输出中会看到:

docker swarm join --token SWMTKN-... 192.168.1.10:2377

3️⃣ Worker 节点加入集群

在其他 Ubuntu 机器上执行:

sudo docker swarm join --token SWMTKN-... 192.168.1.10:2377

4️⃣ 查看集群状态

docker node ls

5️⃣ 部署服务(示例)

docker service create --replicas 3 -p 80:80 --name web nginx

二、生产级方案:Kubernetes(K8s)

适合:

  • 大规模集群
  • 微服务
  • 自动伸缩、自愈

方式一:kubeadm(官方方式)

1️⃣ 所有节点

sudo apt install -y docker.io
sudo apt install -y kubelet kubeadm kubectl
sudo systemctl enable docker

2️⃣ Master 节点

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

3️⃣ 配置 kubectl

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

4️⃣ 安装网络插件(Flannel)

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

5️⃣ Worker 节点加入

sudo kubeadm join <MASTER_IP>:6443 --token xxx --discovery-token-ca-cert-hash sha256:xxx

三、轻量方案:Docker Compose + 多机(不推荐集群)

仅适合:

  • 测试
  • 少量服务

四、方案对比

方案 难度 适用场景
Docker Swarm ⭐⭐ 中小集群、快速
Kubernetes ⭐⭐⭐⭐ 生产、复杂系统
Docker Compose ⭐ 单机/测试

五、常见坑提醒

✅ 防火墙开放端口

  • Swarm:2377, 7946, 4789
  • K8s:6443, 10250

✅ 时间同步(NTP)

✅ 主机名唯一


如果你愿意,可以告诉我:

  • 几台 Ubuntu?
  • 物理机 / 云服务器?
  • 用途(Web / 微服务 / 测试)?

我可以直接给你一套可复制的命令方案。

0 踩