本博客为JDGan自修Docker的笔记,如有粗鄙之处,还请见谅~
阅读本博客前,请确定掌握了前一篇blog:Docker 集群。
Docker 栈
前面在上一章里,已经通过docker stack deploy
部署了一个栈,但是实际应用当中,我们不可能只有一个栈,所以本章就多个栈的情况,进行介绍。
添加新服务并重新部署
打开前一章的docker-compose.yml
,并新增一个服务visualizer
:
version: "3"
services:
web:
image: username/repo:tag
deploy:
replicas: 5
restart_policy:
condition: on-failure
resources:
limits:
cpus: "0.1"
memory: 50M
ports:
- "80:80"
networks:
- webnet
visualizer:
image: dockersamples/visualizer:stable
ports:
- "8080:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
deploy:
placement:
constraints: [node.role == manager]
networks:
- webnet
networks:
webnet:
按照上一章的流程,拷贝到集群控制器 Home 下,执行
$ docker stack deploy -c docker-compose.yml getstartedlab
直接通过浏览器访问<ip>:<port>
,可以看到如下图所示的 Docker node图。
也可通过docker stack ps getstartedlab
查看。
添加 redis 数据库服务
通过上面的方法,再添加redis
服务到docker-compose.yml
redis:
image: redis
ports:
- "6379:6379"
volumes:
- ./data:/data
deploy:
placement:
constraints: [node.role == manager]
networks:
- webnet
placement
指定了该服务部署的节点角色位置
volumes
指定redis可以通过/data
访问./data
,注意需要保证该目录的存在mkdir ./data
。
再次直接部署服务
$ docker stack deploy -c docker-compose.yml getstartedlab
这样就可以直接使用redis
数据库服务了。
网友评论