在 Ubuntu 上搭建 Docker 集群,常见做法有几种,取决于你的需求(简单容器编排 / 生产级集群)。下面按从易到难给你讲清楚。
适合:
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker
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
在其他 Ubuntu 机器上执行:
sudo docker swarm join --token SWMTKN-... 192.168.1.10:2377
docker node ls
docker service create --replicas 3 -p 80:80 --name web nginx
适合:
sudo apt install -y docker.io
sudo apt install -y kubelet kubeadm kubectl
sudo systemctl enable docker
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
sudo kubeadm join <MASTER_IP>:6443 --token xxx --discovery-token-ca-cert-hash sha256:xxx
仅适合:
| 方案 | 难度 | 适用场景 |
|---|---|---|
| Docker Swarm | ⭐⭐ | 中小集群、快速 |
| Kubernetes | ⭐⭐⭐⭐ | 生产、复杂系统 |
| Docker Compose | ⭐ | 单机/测试 |
✅ 防火墙开放端口
2377, 7946, 47896443, 10250✅ 时间同步(NTP)
✅ 主机名唯一
如果你愿意,可以告诉我:
我可以直接给你一套可复制的命令方案。