stacks
1. 可以在docker-compose.yml中增加多个services
docker engine 1.12新特性
1. 内置服务编排机制:目前有Docker Swarm、Kubernetes以及Mesos在内的多种编排框架,Docker Engine如今迎来了内置编排机制
2. Service:分布式负载均衡服务
3. 零配置安全性:节点之间通信内容验证、授权、加密
4. Docker Stack与分布式应用捆绑包DAB
普通容器和docker stack区别
单个应用方式: Dockerfile -> 镜像 -> 容器(docker run) ---非集群
多个应用管理方式: docker-compose ---非集群
分布式负载均衡服务方式: docker service create/update ---集群
分布式负载均衡服务管理方式:Docker Compose -> 分布式应用捆绑包 -> Docker Stack ---集群
通过compose文件生成dab并创建stack过程
docker service ls --filter name=redis --quiet | wc -l
docker-compose --file docker-compose.yml bundle
docker deploy --file page-hit-counter.dab page-hit-counter
docker service ls
【docker stack命令】
根据compose文件或bundle文件创建stack
docker stack deploy --compose-file docker-compose.yml vossibility
docker stack deploy --bundle-file vossibility-stack.dab vossibility
列出所有stack
docker stack ls
列出stack中所有任务
docker stack ps
删除stack
docker stack rm
列出stack中所有服务
docker stack services stack-name
【自动集群负载均衡】
Docker Service负责保持应用的“理想状态”。例如,理想状态是确保特定服务有二套容器与之对应且持续运行。如果移除某个容器,而非服务,则该服务会自动重启一个容器,如果整个节点挂了,则会自动到集群中开启另一个节点。所以如果要删除某个服务,必须 docker service rm ** 或 docker stack rm **
例如:
docker rm -f abf8703ed713 ----删除正在运行的容器
docker service ls ----能看到容器删除后又重启了一个