Docker Swarm部署单应用集群
查看docker swarm信息(command swarm信息)
docker info
创建一个manager节点(不指定--advertise-addr参数会默认为本地地址)
docker swarm init --advertise-addr 121.37.8.12
添加一个worker节点(token信息等包含在创建Manager节点的结果中)
docker swarm join --token SWMTKN-1-3wc7e3p1ih5jxsojcbhj6xog3gl5ybk72ds6xgy831i3l5bevk-78885vpz0axnmvf600nw40va6 121.37.8.12:2377
在manager节点上创建一个服务,其中:
- replicas表示副本数(包含当前节点)
- publish参数表示映射的端口(在docker container ls中看不到端口映射信息,只能通过docker swarm ls查看映射信息)
docker service create --name htmltestservice --replicas 2 --publish 5000:80 alexwillbegood/htmltest:v1.0
docker service ls
扩大集群规模(增加该服务work数,但是需要集群有足够的worker)
docker service scale htmltestservice=2
删除服务(所有worker上面的服务同时会被移除)
docker service rm htmltestservice
脱离集群
docker swarm leave -f
docker stack部署多应用集群
如果想部署多个应用的集群就需要使用docker stack,首先编写一个docker-compose.yml文件。
version: '3'
services:
htmltest1:
image: alexwillbegood/htmltest1
ports:
- 5000:80
deploy:
#global全节点复制 replicated指定复制
mode: replicated
replicas: 2
htmltest2:
image: alexwillbegood/htmltest2
ports:
- 5001:80
deploy:
mode: replicated
replicas: 2
创建一个stack
docker stack deploy -c docker-compose.yml teststack
docker stack ls