74.Docker的服务栈
来源:互联网 发布:淘宝 手办时光机 编辑:程序博客网 时间:2024/05/21 17:09
- 栈
- 添加visualizer
- 添加Redis
转载请注明原始出处:http://blog.csdn.net/a464057216/article/details/71331664
栈
实际生产中,应用由各种相互依赖的服务组成。在Docker中,服务的集合称为栈。栈的编排同样在容器编排配置文件中定义,只是定义了多个服务而已。
添加visualizer
首先基于之前博客的内容添加一个可视化服务观察集群是如何调度容器:
# Written by: CSDN - Mars Loo的博客version: "3"services: web: image: hub.c.163.com/learndocker/learndocker:v1 deploy: replicas: 5 resources: limits: cpus: "0.1" memory: 50M restart_policy: condition: on-failure ports: - "80:80" networks: - webnet visualizer: image: hub.c.163.com/learndocker/visualizer:stable ports: - "8080:8080" volumes: - "/var/run/docker.sock:/var/run/docker.sock" deploy: placement: constraints: [node.role == manager] networks: - webnetnetworks: webnet:
上面通过volumes
属性赋予容器访问宿主机socket文件的权限,placement
属性规定容器只能在swarm manager上运行。visualizer
镜像是Docker Hub上的dockersamples/visualizer
镜像,由于国内网络Pull比较麻烦,我已经Push到了网易蜂巢上,大家直接下载使用即可。
像之前一样启动应用:
# Written by: CSDN - Mars Loo的博客$ docker stack deploy -c docker-compose.yml learndockerCreating network learndocker_webnetCreating service learndocker_webCreating service learndocker_visualizer
浏览器访问swam manager机器的8080端口即可观察到集群中容器的分布情况:
visualizer
工具是一个依赖很少的服务,任何集群中均可以安装此服务来分析集群中容器的部署情况,点击每个容器可以弹出容器的JSON格式的详细信息界面。
添加Redis
使用的是Docker hub上的最新版本的Redis,同样我将他Push到了网易蜂巢上:
version: "3"services: web: image: hub.c.163.com/learndocker/learndocker:v1 deploy: replicas: 5 resources: limits: cpus: "0.1" memory: 50M restart_policy: condition: on-failure ports: - "80:80" networks: - webnet visualizer: image: hub.c.163.com/learndocker/visualizer:stable ports: - "8080:8080" volumes: - "/var/run/docker.sock:/var/run/docker.sock" deploy: placement: constraints: [node.role == manager] networks: - webnet redis: image: hub.c.163.com/learndocker/redis:latest ports: - "6379:6379" volumes: - "./data:/data" deploy: placement: constraints: [node.role == manager] networks: - webnetnetworks: webnet:
重新部署服务栈之前,先建立与docker-compose.yml
同级的data
目录:
# Written by: CSDN - Mars Loo的博客$ docker stack deploy -c docker-compose.yml learndockerUpdating service learndocker_visualizer (id: lll8kq41ym5jny0bj8c1h8t8s)Updating service learndocker_redis (id: srrj6xhrxrjdcuqteuyuvttoo)Updating service learndocker_web (id: bnhhgifdy6vho2vngnv76rpeu)
挂载本地./data
到容器中的/data
目录(即Redis存储数据的目录),是为了防止重新部署应用时Redis数据被清空,指定运行在swarm manager保证Redis每次启动都使用同一个文件系统。
查看Docker集群内所有节点:docker node ls
删除Docker集群内某个节点:docker node rm <node ID>
接下来请继续学习容器间的网络通信,了解Docker容器间如何完成信息交互。
如果觉得我的文章对您有帮助,欢迎关注我(CSDN:Mars Loo的博客)或者为这篇文章点赞,谢谢!
- 74.Docker的服务栈
- Docker-SSH服务的配置
- 【docker】--服务
- docker之路--docker服务非正常结束的解决
- 搭建自己的 Docker 私有仓库服务
- docker 制作Dockerfile的SSH服务
- 基于Docker的分布式服务研发实践
- docker上运行opengl依赖的服务
- docker+gitlab的私有服务环境搭建
- docker服务一般的启动命令
- 关于Docker的服务发现与注册
- docker-web服务与应用的定制
- Docker服务网格的优点,微服务
- 创建实现SSH服务的Docker容器
- docker的centos如何启动sshd服务
- 理解基于 docker 的现代化的服务发现
- 使用docker构建简单的本地的mysql服务
- CentOS下的Docker容器-<nginx下的cache服务>
- 决策树Python实现
- Hibernate Validator实现数据校验
- Java web 重定位失效
- oracle基本命令集合(1)--基本操作
- Android中Button的响应点击事件的几种写法
- 74.Docker的服务栈
- 在 .NET Core 中的并发编程
- /*先进先出页面置换算法*/
- Spring(4)装配Bean
- jQuery之缓存数据
- 阿里云服务器以及CDN支持IPV6的方法
- 使用ElasticSearch,Kibana,ASP.NET Core和Docker可视化数据
- 手机移动端使用JuiceSSH连接控制远程服务器端
- Qt_log2000_定时器事件