docker从零开始(五)堆栈初体验,stacks

先决条件

  • 安装Docker 1.13或更高版本
  • 获取Docker Compose,请参考第三节
  • 按照第四节中的描述获取Docker Machine
  • 在第二节中了解如何创建容器。
  • 确保您的图像作为已部署的容器运行。运行此命令,在您的信息槽中  usernamerepotagdocker run -p 80:80 username/repo:tag,然后访问http://localhost/
  • docker-compose.yml第3部分获得一份方便的副本。
  • 确保您在第四节中设置的计算机正在运行并准备就绪。运行docker-machine ls以验证这一点。如果计算机已停止,请运行docker-machine start myvm1以引导管理器,然后docker-machine start myvm2再引导该工作程序。
  • 让你在第四节中创建的swarm 运行并准备就绪。运行 docker-machine ssh myvm1 "docker node ls"以验证这一点。如果群集已启动,则两个节点都会报告ready状态。如果不是,重新初始化群和描述中加入worker。

介绍

在第四节中,您学习了如何设置一个群集,这是一个运行Docker的计算机集群,并为其部署了一个应用程序,其中容器在多台计算机上协同运行。

在第5部分中,您将到达分布式应用程序层次结构的顶部:堆栈。堆栈是一组相互关联的服务,它们共享依赖关系,并且可以协调和缩放在一起。单个堆栈能够定义和协调整个应用程序的功能(尽管非常复杂的应用程序可能希望使用多个堆栈)。

一些好消息是,从第3部分开始,当您创建Compose文件并使用时,您在技术上一直在使用堆栈docker stack deploy。但这是在单个主机上运行的单个服务堆栈,这通常不会在生产中发生。在这里,您可以学习所学内容,使多个服务相互关联,并在多台计算机上运行它们。

添加新服务并重新部署

将服务添加到我们的docker-compose.yml文件很容易。首先,让我们添加一个免费的可视化服务,让我们看看我们的swarm如何调度容器。

  1. docker-compose.yml在编辑器中打开并用以下内容替换其内容。请务必更换username/repo:tag镜像详细信息。
version: "3"
services:
  web:
    # replace username/repo:tag with your name and image details
    image: benjamin77/image:part2
    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:

这里唯一新的是对等服务web,名为visualizer

注意这里有两个新的东西:一个volumes键,让可视化工具访问Docker的主机套接字文件,

以及一个placement密钥,确保这个服务只能在一个swarm管理器上运行 - 绝不是一个工人。

这是因为这个容器是由Docker创建的开源项目构建,它显示了在图中的swarm上运行的Docker服务。

2.确保您的shell配置为与之通信myvm1

[[email protected] docker_install]# docker-machine ls
NAME    ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
myvm1   -        virtualbox   Running   tcp://192.168.99.100:2376           v18.06.0-ce
myvm2   -        virtualbox   Running   tcp://192.168.99.101:2376           v18.06.0-ce
[[email protected] docker_install]# docker-machine env myvm1
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/root/.docker/machine/machines/myvm1"
export DOCKER_MACHINE_NAME="myvm1"
# Run this command to configure your shell:
# eval $(docker-machine env myvm1)
[[email protected] docker_install]# eval $(docker-machine env myvm1)
[[email protected] docker_install [myvm1]]# 

3.docker stack deploy在管理器上重新运行该命令,并更新需要更新的任何服务:

[[email protected] docker_install]# eval $(docker-machine env myvm1)
[[email protected] docker_install [myvm1]]# docker stack deploy -c docker-compose.yml getstartedlab
Creating service getstartedlab_visualizer
Updating service getstartedlab_web (id: 3gnwxgnc10ie0jgmvq19ws5tb)
[[email protected] docker_install [myvm1]]# 

原文地址:https://www.cnblogs.com/benjamin77/p/9501480.html

时间: 2024-10-17 16:23:12

docker从零开始(五)堆栈初体验,stacks的相关文章

Docker深入浅出系列 | 容器初体验

Docker深入浅出系列 | 容器初体验 教程目标 Docker已经上市很多年,不是什么新鲜事物了,很多企业或者开发同学以前也不多不少有所接触,但是有实操经验的人不多,本系列教程主要偏重实战,尽量讲干货,会根据本人理解去做阐述,具体官方概念可以查阅官方文档,本章目标如下: 了解什么是Docker 了解Docker解决了什么 了解什么是镜像和容器 了解容器与虚拟机的区别 了解Vagrant与Docker的区别 了解Docker引擎和架构 了解Docker的镜像分层 了解VirturalBox和Do

docker入门2---docker的初体验

Tomxin7 Simple, Interesting | 简单,有趣 第一个Docker镜像? 尝试运行docker自带的镜像"hello-world",了解docker镜像的下载和启动. docker的整个生命周期有三部分组成:镜像(image)+容器(container)+仓库(repository) 1.查看当前镜像 [[email protected] docker]# docker images 结果应该是当前系统暂时还没有任何镜像 2.下载"hello-worl

LinQ从零开始---初体验

LinQ从零开始---初体验 LinQ是什么? LINQ,语言集成查询(LanguageIntegrated Query)是一组用于c#和Visual Basic语言的扩展.它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据. LinQ要解决什么问题? 面向对象与数据访问两个领域长期分裂,各自为政, 编程语言中的数据类型与数据库中的数据类型形成两套体系. C# 中字符串用 string 表示 SQL 中字符串用 NVarchar/Varchar/Char 表示 SQ

Linux初体验(五)

Linux初体验(五) 文件通配符 绝对路径与相对路径 发邮件 file tree 文件通配符 用途说明 文件通配符是一种简洁高效的语句,主要用来精确搜索或模糊搜索文件.其用一个或多个特殊的字符来实现对真正字符的替换,从而完成相关的任务. 在Linux中,主要有以下文件通配符: *  匹配零个或多个字符 ?  匹配任意单个字符 ~  当前用户家目录 ~username  用户家目录  [0-9]  匹配一个数字范围 [a-z]  大写与小写字母 [A-Z]  大写字母 [ ]  匹配列表中的任意

VSTO学习笔记(十五)Office 2013 初体验

原文:VSTO学习笔记(十五)Office 2013 初体验 Office 2013 近期发布了首个面向消费者的预览版本,我也于第一时间进行了更新试用.从此开始VSTO系列全面转向Office 2013平台,即VSTO 5.0. 本系列所有测试代码均在Visual Studio 2012 Ultimate RC + Office 2013 Professional Plus x64 Preview 上测试通过 为了配合Windows 8,微软的很多软件风格都逐渐Metro化,Office作为拳头

ASP.NET MVC学习---(五)MVC初体验

经过之前n多的铺垫 我们已经大概了解了这个姓m名vc的家伙了 那么今天我们就来体验一把 怎么体验呢? 就来做一个小例子吧~ mvc增删改查的例子 数据库还是之前我们的老朋友 关系图: 表中的数据已填好 T_Users 将就着用着吧,哈哈 现在要求对T_Users表进行增删改查 开搞~ 回到之前新建的mvc项目 在Controllers文件夹下新建一个名为Home的空控制器 当浏览器请求Home下面的Index方法的时候返回什么? 当然是主页面啦 这里我们的主页面就是显示T_Users数据列表 代

Cocos2dx3.1-Android环境搭建初体验

初玩Cocos2dx,多多包涵. 感觉版本之间的差异比较大,相对前面的版本来说,3.X更容易上手,更方便了. 一.安装python.我的python-2.7.3.配置环境变量 系统变量里:在Path里面增加 D:\2013\python\Python27 二.安装ant.我的apache-ant-1.9.3.配置环境变量 系统变量里:新建一个,ANT_HOME(D:\2013\ant\apache-ant-1.9.3),然后在Path里面增加 D:\2013\ant\apache-ant-1.9

Cocos2dx-Android初体验

windows下android平台cocos2dx. 首先得自己具备如下eclipse(adt.cdt).cygwin.android-ndk .android-sdk,自己下载安装,不做详细解释. 一.下载cocos2dx. http://www.cocos2d-x.org/download 我的cocos2dx目录为D:\2013\cocos2dx\cocos2d-x-2.1.4\cocos2d-x-2.1.4 二.首先进行android版配置,需要修改几个地方. 1.进入目录,修改crea

KVM之初体验——手动及自动化安装KVM脚本

一,什么是KVM KVM包括很多部件:首先,它是一个Linux内核模块(现在包括在主线中)用于转换处理器到一种新的用户 (guset) 模式.用户模式有自己的ring状态集合,但是特权ring0的指令会陷入到管理器(hypervisor)的代码.由于这是一个新的处理器执行模型,代 码不需要任何的改动.   除了处理器状态转换,这个内核模块同样处理很小一部分低层次的模拟,比如MMU注册(用于管理VM)和一部分PCI模拟的硬件. 在可预见的未来,Qemu团队专注于硬件模拟和可移植性,同时KVM团队专