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 ----能看到容器刪除後又重啓了一個