Docker的堆栈使用
来源:互联网 发布:点菜软件介绍 编辑:程序博客网 时间:2024/06/06 12:47
本章节将介绍更高一层的分布式应用程序部署:堆栈。堆栈是一组关联的服务并且共享依赖关系,一个堆栈可以定义和协调整个应用程序的功能(虽然复杂的应用程序需要多个栈)。
好消息是,在第三章节使用docker stack deploy和compose文件的时候已经使用过栈的相关技术,但那只是在一个主机上跑一个服务,在生产环境中不常用。接下来将通过你学到的技术启动多个服务并且运行在多个机器上。
添加新的服务器并重新部署
打开docker-compose.yml文件,重新编辑,内容如下:
version: "3"services: web: image: yidufanchen/my-helloworld:latest 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: - webnetnetworks: webnet:
将最新的文件内容写入已有的文件中,重新传入myvm1中,更新web服务器:
docker-machine ssh myvm1 “docker stack deploy -c docker-compose.yml getstartedlab”
提示创建getstartedlab_visualizer服务和web服务更新成功
接下来,我们来看一下visualizer,这里注意,虽然我们的命令提示好像是执行完了,但是通过docker-machine ssh myvm1 “docker stack ps getstartedlab”命令,我们发现,需要注意两个状态,一个味desired state 和 current state,前者是期望达到的状态,后者是目前的状态,可以发现visualizer处于准备状态,也就是说,你现在去访问8080端口时是连不上的,需要等到状态变为running才可以连上,查了一下,需要下载的visualizer有一百多M,根据网速算时间,需要等一会儿了,我这里下载了12分钟,但是下载过后当前状态还是处于准备状态,这个过程是从docker hub上下载相关镜像到虚拟机的过程,需要等待一段时间,如果启动不了,需要重新安装尝试,我在安装过程中,尝试了好几次才成功。
当安装之后,可以看到visualizer也处于running状态。
在虚拟中安装Redis docker镜像,配置文件如下:
version: "3"services: web: # replace username/repo:tag with your name and image details 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 redis: image: redis ports: - "6379:6379" volumes: - ./data:/data deploy: placement: constraints: [node.role == manager] networks: - webnetnetworks: webnet:
其中./data:/data指定Redis的data数据存储在当前目录下的data文件夹下,所以需要在管理者机器上创建好/data文件夹,直接使用docker-machine ssh myvm1 “mkdir ./data”即可
- Docker的堆栈使用
- 堆栈的使用
- 堆栈的使用
- 数据结构---->堆栈的使用
- 堆栈的使用
- 堆栈的使用
- 堆栈的使用
- 题目28:堆栈的使用
- jobdu 28 堆栈的使用
- 题目1108:堆栈的使用
- 题目1108:堆栈的使用
- 题目1108:堆栈的使用
- 题目1108:堆栈的使用
- 使用TCmalloc的堆栈检查
- 调试之堆栈的使用
- 使用TCMalloc的堆栈检查
- 题目1108:堆栈的使用
- 使用TCMalloc的堆栈检查
- nginx 做proxy 不转发 http header问题解决
- windows 安装mongo数据库&注册mongo服务
- CSS bem命名规范
- Android7.0 自定义控件addView(...)无效,View的绘制流程(onMeasure、onLayout等)完全没执行的解决办法。
- IAR fatal error:unknown exception in drier7
- Docker的堆栈使用
- apache反向代理实现负载均衡,编译mod_proxy模块
- 剑指offer-复杂链表的复制
- spring boot单元测试
- 正则表达式限定输入数字
- 自己的毛病---懒
- JDK Timer实现详解
- Oracle调整表空间大小——ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据
- 关于redux