Docker Stack简介及使用
1.简介
Docker Compose的缺点是不能在分布式多服务器上使用,Docker swarm的缺点是不能同时编排多个服务,所以才有了Docker Stack,可以在分布式多服务器上同时编排多个服务。
2.使用实例
1.准备docker-compose文件
本地准备两个镜像后,编写compose文件/root/docker-compose.yml:
python
version: "3.9"
services:
service1:
image: "masonzhang/service1:V1"
deploy:
replicas: 2
ports:
- "8080:8080"
service2:
image: "masonzhang/service2:V1"
deploy:
replicas: 3
ports:
- "8081:8081"
2.swarm集群搭建
可参考:docker swarm安装使用
3.stack部署
python
$ docker stack deploy myapps --compose-file=/root/docker-compose.yml
4.stack其他操作
查看所有stack的信息
python
$ docker stack ls
NAME SERVICES ORCHESTRATOR
myapps 2 Swarm
查看某个stack中的所有任务信息
python
$ docker stack ps myapps
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE
tvvujrf3qcr1 myapps_service1.1 masonzhang/service1:V1 node1 Running Running 46 seconds ago
igjeydmmvzzm myapps_service1.2 masonzhang/service1:V1 manager Running Running 46 seconds ago
7p5c96eplwl3 myapps_service2.1 masonzhang/service2:V1 node1 Running Running 34 seconds ago
7shglsajip5d myapps_service2.2 masonzhang/service2:V1 manager Running Running 39 seconds ago
upo0mr7j9tn1 myapps_service2.3 masonzhang/service2:V1 node2 Running Preparing 41 seconds ago
查看某个stack中的所有服务信息
python
$ docker stack services myapps
ID NAME MODE REPLICAS IMAGE PORTS
icz3kjn0skb3 myapps_service1 replicated 2/2 masonzhang/service1:V1 *:8080->8080/tcp
myuzlwnrxag4 myapps_service2 replicated 3/3 masonzhang/service2:V1 *:8081->8081/tcp
移除stack
python
docker stack rm myapps