zoukankan      html  css  js  c++  java
  • Docker服务编排

    1 服务编排概念

    • 微服务架构的应用系统中一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,维护的工作量会很大。

      • 要从Docker build image 或者去 Docker Hub拉取image。
      • 要创建多个container。
      • 要管理这些container(启动、停止、删除等)。
    • 服务编排:按照一定的业务规则批量管理容器。

    2 Docker Compose概念

    • Docker Compose是一个编排多容器分布式部署的工具,提供命令管理容器化应用的完整开发周期,包括服务创建构建、启动和停止。
    • 使用步骤如下:
      • ①利用Dockerfile定义运行环境镜像。
      • ②使用docker-compose.yml定义组成应用的各个服务。
      • ③运行docker-compose up启动应用。

    Docker Compose概念

    3 Docker Compose的安装和卸载

    3.1 Docker Compose的安装

    # Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。 
    curl -L https://github.com/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    # 国内的地址
    curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    # 设置文件可执行权限 
    chmod 777 /usr/local/bin/docker-compose
    # 创建软链接
    sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
    # 查看版本信息 
    docker-compose -version
    

    3.2 Docker Compose的卸载

    # 二进制包方式安装的,删除二进制文件即可
    rm /usr/local/bin/docker-compose
    

    4 Docker Compose的应用示例

    • 新建一个SpringBoot项目,随便建。
    • 编写Dockerfile文件。
    # 指定基础镜像,在其上进行定制
    FROM java:8
    #这里的 /tmp 目录就会在运行时自动挂载为匿名卷,任何向 /tmp 中写入的信息都不会记录进容器存储层
    VOLUME /tmp
    # 指定在创建容器后,终端默认登陆进来的工作目录,一个落脚点
    WORKDIR /
    #复制上下文目录下的/target/demo-1.0.jar到容器里,并将文件名称修改为demo.jar
    ADD /target/demo-1.0.jar demo.jar
    #bash方式执行,使robot.jar可访问
    #RUN新建立一层,在其上执行这些命令,执行结束后, commit 这一层的修改,构成新的镜像。
    RUN bash -c "touch /demo.jar"
    RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
    #声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
    EXPOSE 8080
    #指定容器启动程序及参数   <ENTRYPOINT> "<CMD>"tail
    ENTRYPOINT ["java","-Dfile.encoding=UTF-8","-Djava.security.egd=file:/dev/./urandom","-jar","/demo.jar"]
    
    • 使用docker build构建镜像。
    docker build -t demo
    
    • 新建/var/nginx/nginx.conf.d目录,并新建nginx.conf配置文件:
    server {
            listen       80;
            server_name  192.168.64.100;
    
            location / {
                proxy_pass http://app:8080/;
            }
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    
    
    • 编写docker-compose.yml。
    version: '3'
    services:
      nginx:
        image: nginx
        ports:
          - "80:80"
        links:
          - app
        volumes:
          - "/var/nginx/nginx.conf.d:/etc/nginx/conf.d"
      app:
        image: demo
    
    • 使用如下命令启动:
    docker-compose up -d
    
  • 相关阅读:
    数据结构(四十)平衡二叉树(AVL树)
    数据结构(三十九)二叉排序树
    数据结构(三十八)静态查找表(顺序查找、二分查找、插值查找、斐波那契查找、线性索引查找)
    数据结构(三十七)查找的基本概念
    数据结构(三十六)关键路径
    数据结构(三十五)拓扑排序
    数据结构(三十四)最短路径(Dijkstra、Floyd)
    数据结构(三十三)最小生成树(Prim、Kruskal)
    字符串匹配算法之KMP
    最长公共子序列(Longest common subsequence)
  • 原文地址:https://www.cnblogs.com/xuweiweiwoaini/p/13660344.html
Copyright © 2011-2022 走看看