堆栈(Stack)的概念:

堆栈是一组相互关联的服务,它们共享依赖关系,并且可以协调和缩放在一起。单个堆栈能够定义和协调整个应用程序的功能,但是非常复杂的应用程序可能希望使用多个堆栈。

下面我们就开始完成我们完成的Flask  程序依赖的Redis服务。

1. 添加一个可视化服务

重新编辑docker-compose.yml,更新我们的服务

version: "3"
services:
web:
# replace username/repo:tag with your name and image details
image: scottcho/flask:v1
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:

  注解:

  • volumes键,让可视化工具访问Docker的主机套接字文件
  • placement密钥,确保这个服务只能在一个swarm管理器上运行

进入管理器节点(myvm1)

eval $(docker-machine env myvm1)

更新服务

[root@docker ~ [myvm1]]# docker stack deploy -c docker-compose.yml getstartedlab
Updating service getstartedlab_visualizer (id: rkb4ijoal4p6ra2ogjbsev6iw)
Updating service getstartedlab_web (id: utklmyoy9wywmokunbi6uxawi)

 查看可视化工具

visualizer正如您所期望的那样,单个副本正在管理器上运行,并且5个实例web分布在整个群集中。您可以通过运行docker stack ps <stack>以下来证实此可视化:

docker stack ps getstartedlab

  

添加相关服务-redis

1. 更新docker-compose.yml

version: "3"
services:
web:
# replace username/repo:tag with your name and image details
image: flask/scottcho:v1
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:
- "/home/docker/data:/data"
deploy:
placement:
constraints: [node.role == manager]
command: redis-server --appendonly yes
networks:
- webnet
networks:
webnet:

 2. 创建容器的挂载目录

docker-machine ssh myvm1 "mkdir ./data"

3. 更新服务

[root@docker ~ [myvm1]]# docker stack deploy -c docker-compose.yml getstartedlab
Updating service getstartedlab_visualizer (id: rkb4ijoal4p6ra2ogjbsev6iw)
Updating service getstartedlab_web (id: utklmyoy9wywmokunbi6uxawi)

4. 访问服务

 

Docker-堆栈stack(6)的更多相关文章

  1. java中堆栈(stack)和堆(heap)(还在问静态变量放哪里,局部变量放哪里,静态区在哪里.....进来)

    (1)内存分配的策略 按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的. 静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编 译时就可以给 ...

  2. java中堆栈(stack)和堆(heap)

    原文地址:http://blog.csdn.net/jerryao/article/details/874101 1.内存分配策略 按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈 ...

  3. 3.2 java中堆栈(stack)和堆(heap)(还在问静态变量放哪里,局部变量放哪里,静态区在哪里.....进来)

    (1)内存分配的策略 按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的. 静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编 译时就可以给 ...

  4. C# 队列(Queue) 和堆栈(Stack)

    队列 (Queue)                                                                                          ...

  5. 算法与数据结构基础 - 堆栈(Stack)

    堆栈基础 堆栈(stack)具有“后进先出”的特性,利用这个特性我们可以用堆栈来解决这样一类问题:后续的输入会影响到前面的阶段性结果.线性地遍历输入并用stack处理,这类问题较简单,求解时间复杂度一 ...

  6. 链表LinkedList、堆栈Stack、集合Set

    链表LinkedList LinkedList 也像 ArrayList 一样实现了基本的 List 接口,但它在 List 中间执行插入和删除操作时比 ArrayList 更高效.然而,它在随机访问 ...

  7. Docker 堆栈

    1.  Stack stack(译:堆叠,堆栈)是一组相互关联的服务,它们共享依赖关系,并且可以一起编排和伸缩. 在上一篇<Docker 服务>中我们知道可以通过创建一个docker-co ...

  8. Docker学习—Stack

    前言: 前一篇了解Docker使用Swarm集群部署方式,并创建服务到Swarm集群中:如果在集群部署过程中存在大量服务部署.编排那么该如何处理呢? 那么就需要了解Docker Stack了. 1.D ...

  9. 堆栈Stack介绍

    堆栈(Stack)代表了一个后进先出的对象集合.当您需要对各项进行后进先出的访问时,则使用堆栈.当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素. Stack 类的方法和属性 ...

  10. [Swift]堆栈Stack的两种版本:(1)用类包装Stack (2)用泛型包装Stack

    堆栈是一个在计算机科学中经常使用的抽象数据类型.堆栈中的物体具有一个特性: 最后一个放入堆栈中的物体总是被最先拿出来, 这个特性通常称为后进先出(LIFO)队列. 堆栈中定义了一些操作. 两个最重要的 ...

随机推荐

  1. unique_ptr_c++11

    unique_ptr 替代了原来的auto_ptr,指向对象具有唯一性,即同一时间只能有unique_ptr指向给定对象(和auto_ptr不同是禁止拷贝语义,通过移动语义替代) unique_ptr ...

  2. linux操作之逻辑分区与交换分区篇

    作业一: 1)   开启Linux系统前添加一块大小为15G的SCSI硬盘 2)   开启系统,右击桌面,打开终端 3)   为新加的硬盘分区,一个主分区大小为5G,剩余空间给扩展分区,在扩展分区上划 ...

  3. web端设计和web前端开发 的区别

  4. python asyncio

    3. 真-官网文档    ----超级全 http://aiohttp.readthedocs.io/en/stable/client.html#make-a-request 2. 官网文档: htt ...

  5. Tornado-cookie

    cookie 服务端在客户端的中写一个字符串,下一次客户端再访问时只要携带该字符串,就认为其是合法用户. tornado中的cookie有两种,一种是未加密的,一种是加密的,并且可以配置生效域名.路径 ...

  6. xinetd服务

    xinetd(eXtended InterNET services daemon) 一.xinetd的功能介绍: xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全.它 ...

  7. JSOUP 打开url的方式

    一般采用这种方式: try{ doc = Jsoup.connect(url) .header("User-Agent", "Mozilla/5.0 (Windows N ...

  8. SOLDI原则之DIP:依赖倒置原则

    本篇介绍软件设计原则之一DIP:依赖倒置原则.很多知识回头来看会有新的理解.看到一句话,一段文字,一个观点有了新的理解,醍醐灌顶的感觉.这种感觉像是一种惊喜.古语说:温故而知新. DIP:依赖倒置原则 ...

  9. golang 特殊知识点

    golang 代码不需要分号; 但是又会自己在底层增加;号 ,所以 golang的{左花括号必须在代码的最后一行,而不能在新的一行; golang 代码组织里需要注意 vendor 和 interna ...

  10. java-算法-排列组合

    package com.qinghuainvest.utils.algorithm; import java.util.ArrayList; import java.util.Arrays; impo ...