Docker Swarm部署單應(yīng)用集群
查看docker swarm信息(command swarm信息)
docker info
創(chuàng)建一個manager節(jié)點(diǎn)(不指定--advertise-addr參數(shù)會默認(rèn)為本地地址)
docker swarm init --advertise-addr 121.37.8.12
添加一個worker節(jié)點(diǎn)(token信息等包含在創(chuàng)建Manager節(jié)點(diǎn)的結(jié)果中)
docker swarm join --token SWMTKN-1-3wc7e3p1ih5jxsojcbhj6xog3gl5ybk72ds6xgy831i3l5bevk-78885vpz0axnmvf600nw40va6 121.37.8.12:2377
在manager節(jié)點(diǎn)上創(chuàng)建一個服務(wù)锋谐,其中:
- replicas表示副本數(shù)(包含當(dāng)前節(jié)點(diǎn))
- publish參數(shù)表示映射的端口(在docker container ls中看不到端口映射信息荧库,只能通過docker swarm ls查看映射信息)
docker service create --name htmltestservice --replicas 2 --publish 5000:80 alexwillbegood/htmltest:v1.0
docker service ls
擴(kuò)大集群規(guī)模(增加該服務(wù)work數(shù)邢享,但是需要集群有足夠的worker)
docker service scale htmltestservice=2
刪除服務(wù)(所有worker上面的服務(wù)同時會被移除)
docker service rm htmltestservice
脫離集群
docker swarm leave -f
docker stack部署多應(yīng)用集群
如果想部署多個應(yīng)用的集群就需要使用docker stack偎谁,首先編寫一個docker-compose.yml文件盆佣。
version: '3'
services:
htmltest1:
image: alexwillbegood/htmltest1
ports:
- 5000:80
deploy:
#global全節(jié)點(diǎn)復(fù)制 replicated指定復(fù)制
mode: replicated
replicas: 2
htmltest2:
image: alexwillbegood/htmltest2
ports:
- 5001:80
deploy:
mode: replicated
replicas: 2
創(chuàng)建一個stack
docker stack deploy -c docker-compose.yml teststack
docker stack ls