介绍
docker service
部署的是单个服务,我们可以使用docker stack
进行多服务编排部署,使用的同样是docker-compose.yml
配置文件
docker stack 常用命令
命令 | 说明 |
---|---|
docker stack deploy | 部署新的堆栈或更新现有堆栈 |
docker stack ls | 列出现有堆栈 |
docker stack ps | 列出堆栈中的任务 |
docker stack rm | 删除堆栈 |
docker stack services | 列出堆栈中的服务 |
docker stack down | 移除某个堆栈(不会删除数据 |
示例文件
version: '3'
services:
#容器名称
web:
#镜像,本地没有的话会从hubdocker下载
image: wordpress
#端口映射
ports:
- 8080:80
#常量配置
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_PASSWORD: root
#指定网络
networks:
- my-network
#依赖容器
depends_on:
- mysql
#指定stack参数
deploy:
#当前容器的扩展类型 replicated可扩展,global不可扩展
mode: replicated
#扩展个数
replicas: 3
#宕机后策略
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
#更新策略
update_config:
parallelism: 1
delay: 10s
#容器名称
mysql:
#镜像,本地没有的话会从hubdocker下载
image: mysql
#设置常量
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: wordpress
#设置数据挂载点
volumes:
- mysql-data:/var/lib/mysql
#设置网络
networks:
- my-network
#指定stack参数
deploy:
#当前容器的扩展类型 replicated可扩展,global不可扩展
mode: global
placement:
constraints:
#指定容器部署节点
- node.role == manager
#挂载点
volumes:
mysql-data:
#docker网络,使用stack时,网络类型必须是overlay
networks:
my-network:
driver: overlay
执行
-c:指定yml文件
docker stack deploy -c /opt/docker-stack/docker-compose.yml wordpress