docker(4)容器编排
·
4. docker容器编排
1. 什么是容器编排
容器编排(Container Orchestration):自动化管理大量容器的生命周期,包括:
- 部署(Deploy):一次性启动多个容器。
- 扩缩容(Scale):按需调整副本数。
- 网络(Networking):不同容器之间的网络互通。
- 存储(Storage):共享存储卷。
- 故障恢复(Health check & Restart):容器挂了自动拉起。
常见编排工具:
- 单节点:Docker Compose
- 多节点:Docker Swarm、Kubernetes(K8s)
2. Docker Compose(单节点编排)
1. 安装
# macOS / Linux 一般 Docker Desktop 自带
docker compose version
# 如果没有,单独安装
sudo apt-get install docker-compose-plugin
2. 基本思想
使用 docker-compose.yml 描述多个容器的服务、网络、卷
一条命令即可启动 / 停止整个应用栈。
3. 典型 yml 文件
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: testdb
volumes:
- dbdata:/var/lib/mysql
volumes:
dbdata:
4. Compose 命令与常见 flags
# 启动所有服务
docker compose up -d
# 停止
docker compose down
# 查看运行状态
docker compose ps
# 扩容服务(例如 web 服务启动 3 个副本)
docker compose up -d --scale web=3
# 查看日志
docker compose logs -f web
# 常用 flags:
# -d → 后台运行
#--scale → 设置副本数量
#--build → 强制重新构建镜像
3. Docker Swarm(多节点编排)
1. 什么是 Swarm
Swarm 是 Docker 自带的分布式编排引擎。
特点:集群化、多节点、内置服务发现、负载均衡。
与 Kubernetes 相比更轻量,但功能较少。
2. Swarm 集群管理
# 初始化 Swarm
docker swarm init
# 让其他节点加入
docker swarm join --token <worker_token> <manager_ip>:2377
# 查看集群信息
# docker info
# docker node ls
# Manager 节点:负责调度与管理。
# Worker 节点:运行具体容器。
3. Node 管理
# 查看节点
docker node ls
# 设置角色(manager / worker)
docker node promote <node_id>
docker node demote <node_id>
# 节点维护(不再调度任务)
docker node update --availability drain <node_id>
4. Service 管理
# 创建服务(部署容器)
docker service create --name myweb -p 8080:80 nginx
# 查看服务
docker service ls
# 查看服务详细信息
docker service ps myweb
# 扩缩容
docker service scale myweb=5
# 更新服务镜像
docker service update --image nginx:alpine myweb
# Swarm 中,Service = 应用的逻辑单元,相当于 Compose 的 service,但支持分布式。
5. Stack 管理(类似 Compose)
# 部署一个 stack(类似 docker-compose.yml)
docker stack deploy -c docker-compose.yml mystack
# 查看 stack
docker stack ls
# 查看 stack 里的服务
docker stack services mystack
# 删除 stack
docker stack rm mystack
更多推荐
所有评论(0)