zoukankan      html  css  js  c++  java
  • Docker入门 三 用服务来扩展和负载均衡你的应用

    我们希望扩展和负载均衡自己的应用,为了达到这个目的,需要要分布式应用中使用更高一级的服务。

    关于服务

    对于分布式系统而言,不同的组成部分叫做“服务”。例如,对于一个视频分享网站,它可能包含了一个往数据库存储的服务,一个在后台格式转换用户上传的东西的服务,一个负责前端展示的服务。

    服务实际上就是生成中的容器,就从业务方面而言。一个服务只能运行一个镜像,但是它能控制容器运行的方式,比如使用什么网络端口,使用多少个容器副本等等。扩展一个服务,可以通过改变应用的每部分实例的数量,还可以通过在服务内部分配更多的主机计算资源。

    幸运的是,使用Docker平台,可以很容易的定义/运行/扩展服务--仅仅是写一个docker-compose.yml文件。

    你的第一个docker-compose.yml文件

    这个文件是YAML 格式,定义 了线上容器的行为。

    吸入以下内容,注意替换你的已经发布的镜像名字

    -------------------------------

    version: "3"
    services:
      web:
        # replace username/repo:tag with your name and image details
        image: username/repository:tag
        deploy:
          replicas: 5
          resources:
            limits:
              cpus: "0.1"
              memory: 50M
          restart_policy:
            condition: on-failure
        ports:
          - "80:80"
        networks:
          - webnet
    networks:
      webnet:

    ---------------------------

    最重要的一点,这个服务的对外端口是所有副本公用的,内部是负载均衡的。

    现在就可以运行使用了负载均衡的应用,但在使用docker stack deploy命令之前,必须先执行

    docker swarm init然后启动服务并用一个别名
    docker stack deploy -c docker-compose.yml getstartedlab
    查看
    docker service ls

    Docker swarms使用多个任务来集群多个容器。任务都有各自的状态和ID。

    扩展你的应用

    你可以修改docker-compose.yml文件中的副本数量,保存后重新使用docker stack deploy命令,需要知道的就是使用了热更新,不必停止stack 或者杀掉容器

    最后停止你的应用和集群

    docker stack rm getstartedlab
    这个命令会移除你的应用,但是却会保留一个集群节点(使用ocker node ls查看),完全移除需要
    docker swarm leave --force.

    使用Docker,非常容易的扩展和保持应用高可用。经过以上步骤,你已经学会了如何在显示运行容器。下一章,你将学会如何在Docker主机集群上作为swarm 集群方式来运行。

    
    
    
    



  • 相关阅读:
    nodejs之express路由与动态路由
    nodejs之mongodb操作
    nodejs之路由
    nodejs之简单应用与运行
    nodejs之fs 模块
    nodejs 之简单web服务器
    C++之结构体struct
    STL之stack
    【剑指offer】05替换空格,C++实现
    【剑指offer】04A二维数组中的查找,C++实现
  • 原文地址:https://www.cnblogs.com/PerfectBeauty/p/7477859.html
Copyright © 2011-2022 走看看