zoukankan      html  css  js  c++  java
  • 第12章 Docker-Compose编排与部署

    1.简介

     

      Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

    如果你还不了解 YML 文件配置,可以先阅读 YAML 入门教程

      Compose 使用的三个步骤:

    • 使用 Dockerfile 定义应用程序的环境。

    • 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。

    • 最后,执行 docker-compose up 命令来启动并运行整个应用程序。

      docker-compose 是用来做docker的多容器控制,有了docker-compose你可以把所有的复杂的docker操作全都用一条命令自动化完成。

    Compose的优点 

      平时在运行docker的时候,运行一个镜像就会有一个search,pull,run等命令,显然是非常累的,如果大规模的进行部署,会非常的麻烦。有了docker-compose,就可以批量的部署和管理容器

      Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

    2.什么是部署和编排

    编排,即orchestration,它根据被部署的对象之间的耦合关系,以及被部署对象环境的依赖,制定部署流程中各个动作的执行顺序,部署过程所需要的依赖文件的存储位置和获取方式,以及如何验证部署成功。这些信息都会在编排工具中以指定的格式(比如配置文件或者特定的代码)来要求运维人员定义并保存起来,从而保证这个流程能够随时在全新的环境中可靠有序地重现出来。

    部署,即deployment,它是指按照编排所指定的内容和流程 ,在目标机器上执行编排指定环境初始化,存放指定的依赖和文件,运行指定的部署动作,最终按照编排中的规则来确认联署成功。

    3.常用命令

      • build(构建yml中某个服务的镜像)
        如上,web这个服务是依赖于镜像build的。在本地 也存在Dockerfile文件。
        可以使用docker-compose build来构建服务的镜像。
      • ps(查看已经启动的服务状态)
      • kill(停止某个服务)
      • logs(可以查看某个服务的log)
      • port(打印绑定的public port)
      • pull(pull服务镜像)
      • up(启动yml定义的所有服务)
      • stop(停止yml中定义的所有服务)
      • start(启动被停止的yml中的所有服务)
      • kill(强行停止yml中定义的所有服务)
      • rm(删除yml中定义的所有服务)
      • restart(重启yml中定义的所有服务)
      • scale(扩展某个服务的个数,可以向上或向下)
      • migrate-to-labels(这个没有实际尝试。根据介绍是将服务从1.2迁移到1.3带labels的版本。docker之前不支持label)
      • version(查看compose的版本)

    docker-compose构建

    • 下载稳定版本的docker-compose(从github上下载docker-compose二进制文件安装)
    •  
      [root@localhost ~]# sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
      

        

    • 添加可执行权限
    • [root@localhost ~]# sudo chmod +x /usr/local/bin/docker-compose
      

        

    • 查看版本号(docker-compose基本环境搭建成功)
    • [root@localhost ~]# docker-compose --version
      docker-compose version 1.24.1, build 4667896b
      

        

    • compose软件包链接:https://pan.baidu.com/s/1RFyqVE8wDBIibXotjENYgQ
      提取码:4hbv

      解压compose文件关于lnmp服务的包
    • [root@localhost ~]# unzip compose_lnmp-190606.zip

      [root@localhost ~]# cd compose_lnmp/
      [root@localhost compose_lnmp]# ls
      docker-compose.yml mysql nginx php wwwroot

        

    • 将  compose_lnmp/nginx/nginx.conf中的IP地址进行修改,成为自己的IP 
    • 构建compose  

    • [root@localhost compose_lnmp]# docker-compose -f docker-compose.yml up -d
      compose_lnmp_php_1 is up-to-date
      compose_lnmp_nginx_1 is up-to-date
      compose_lnmp_mysql_1 is up-to-date

        

    • 查看容器(有三个,说明创建成功)
    • [root@localhost compose_lnmp]# docker-compose ps
              Name                 Command          State          Ports        
      --------------------------------------------------------------------------
      compose_lnmp_mysql_1   docker-entrypoint.sh   Up      0.0.0.0:3306->3306/t
                             --cha ...                      cp                  
      compose_lnmp_nginx_1   /run.sh                Up      0.0.0.0:80->80/tcp  
      compose_lnmp_php_1     ./sbin/php-fpm -c      Up      0.0.0.0:9000->9000/t
                             /usr/loc ...                   cp                  
      [root@localhost compose_lnmp]# docker-compose ps
              Name                      Command               State           Ports         
      --------------------------------------------------------------------------------------
      compose_lnmp_mysql_1   docker-entrypoint.sh --cha ...   Up      0.0.0.0:3306->3306/tcp
      compose_lnmp_nginx_1   /run.sh                          Up      0.0.0.0:80->80/tcp    
      compose_lnmp_php_1     ./sbin/php-fpm -c /usr/loc ...   Up      0.0.0.0:9000->9000/tcp
    • 成功搭建

    •   

  • 相关阅读:
    使用日历控件的一些体会(downmoon)
    带附加条件的NewID()用法
    微软的招聘哲学——做微软人的五大核心素质(摘自《微软360度》)
    彻底禁用fckEditor的上传功能(含防止Type漏洞问题)
    Remote Access Connection Manager 服务因下列错误而停止解决办法
    GridView如何更新批量数据和单条记录?
    .net1.1与.net2.0在加载ascx文件的控件时有所不同(Downmoon)
    牛羊吃草问题求解(downmoon)
    c#操作ecxel的一些资源(downmoon搜集)
    安装sql2008 enterprise (English正式版)图解
  • 原文地址:https://www.cnblogs.com/hanjiali/p/14164247.html
Copyright © 2011-2022 走看看