Docker Swarm 集群入门

## Swarm 是什么

Docker Swarm 是 Docker 自带的容器编排工具。和 Kubernetes 比,它极其简单,学习成本只有 K8s 的十分之一。对于个人开发者和中小团队,Swarm 足够用了。

## 核心概念

- **Manager 节点**:管理集群状态,调度服务
- **Worker 节点**:运行容器
- **Service**:定义要运行的服务
- **Stack**:一组服务的集合(类似 docker-compose.yml)

## 初始化集群

```bash
docker swarm init --advertise-addr 192.168.1.10
# Worker 节点执行输出的 join 命令
docker swarm join --token SWMTKN-xxx 192.168.1.10:2377
docker node ls
```

## 部署服务

```bash
docker service create --name web --replicas 3 --publish published=80,target=80 nginx:alpine
docker service ls
docker service scale web=5
docker service update --image nginx:latest web
```

## 使用 Stack 部署(推荐)

创建 `stack.yml`,然后用 `docker stack deploy -c stack.yml myapp` 部署。

## Swarm vs Kubernetes

| 特性 | Docker Swarm | Kubernetes |
|------|-------------|-----------|
| 学习曲线 | 低 | 高 |
| 安装 | 内置 Docker | 需要额外安装 |
| 配置复杂度 | 简单 | 复杂 |
| 适合规模 | 3-10 节点 | 10+ 节点 |

## 实用技巧

**配置文件管理**:`docker config create nginx-conf ./nginx.conf`
**密钥管理**:`echo "mypassword" | docker secret create db_password -`

Swarm 是 Docker 生态里最被低估的功能。对于个人和小团队,它比 K8s 务实得多。

💬 暂无评论