• 第五课:单机编排利器:Docker Compose


    1.Compose是什么

    Compose是用于定义和运行多容器的工具。通过Compose可以使用YAML文件来配置容器。然后,使用一个命令就可以从配置中创建并启动所有服务。
    官方文档:https://docs.docker.com/compose/

    使用Compose大致分三步:
    定义Dockfile,以便可以在任意环境运行。
    定义应用程序启动配置文件docker-compose.yaml。
    docker-compose启动并管理整个应用程序生命周期。

    2.linux安装compose

    sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose  
    
    sudo chmod +x /usr/local/bin/docker-compose
    

    3.compose编排常用字段说明

    官方文档:https://docs.docker.com/compose/compose-file/

    字段 描述 示例
    bulid
     dockerfile
     context
    构建选项
     制定Dockfile文件名
     构建镜像上下文路径
    build:
     context:./dir
     dockerfile:Dockerfile-alternate
    image 指定镜像 image:webapp:tag
    command 容器中执行命令,覆盖默认命令 command:bundle exec thin -p 3000
    command:["bundle","exec","thin","-p","3000"]
    environment 添加环境变量 environment:
     - RACK_ENV=development
     - SHOW=true
    networks 加入网络,引用顶级networks下条目 networks:
     - new
    ports 暴露端口,与-p相同,但端口不能低于60 ports:
     - "80:80"
     - "8080:8080/udp"
    extra_hosts 添加主机名映射,与--add-host相同 extra_hosts:
     - "somehost:192.168.100.100"
     - "otherhost:192.168.1.1"
    volumes 挂载宿主机路径或数据卷,如果是命名卷在顶级volumes定义卷名称 volumes:
     - /opt/data:/var/lib/mysql
     - datavolumes:/var/lib/mysql
    restart 重启策略,默认no,always|no-failure|unless-stopped restart:always
    hostname 容器主机名 hostname:FOO

    4. compose常用选项与命令

    常用选项
    -f,--file 指定yaml文件,默认docker-compose.yml
    -p,--project-name 指定项目名称,默认是当前目录

    命令 描述
    build 重新构建服务
    ps 列出容器
    up 创建和启动容器
    exec 在容器内执行命令
    scale 指定一个服务容器启动数量
    down 删除容器,网络,数据卷和镜像
    stop/start/restart 停止/启动/重启服务

    5. docker-compse.yml示例

    version: "3"
    service: 
      nginx:
        hostname: nginx
        bulid:
          context: ./nginx
          dockerfile: Dockerfile
        ports:
          - 80:80
        networks:
          - lnmp
        volumes:
          - ./nginx/php.conf:/usr/local/nginx/conf/vhost/php.conf
          - ./wwwroot:/usr/local/nginx/html
          
        php:
          hostname: php
          build:
            context: ./php
            dockerfile: Dockerfile
          networks:
            - lnmp
          volumes:
            - ./wwwroot:/usr/local/nginx/html
        
        mysql:
          hostname: mysql
          image: mysql:5.7
          ports:
            - 3006:3006
          networks:
            - lnmp
          volumes:
            - ./mysql/conf:/etc/mysql/conf.d
            - ./mysql/data:/var/lib/mysql
          command: --character-set-server=utf8
          enviroment:
            MYSQL_ROOT_PASSWORK: 123456
            MYSQL_DATABASE: test
            MYSQL_USER: user
            MYSQL_PASSWORD: user123456
            
        networks:
          lnmp: {}
          
        ```
  • 相关阅读:
    数据库连接单例模式
    魔术方法
    序列化与反序列化
    设计模式
    类的自动加载
    错误处理
    匿名类--php7.0以上
    OpenCV中HSV颜色模型及颜色分量范围
    Opencv 轮廓提取
    opencv 二值化_OpenCV二值图像案例分析精选 | 第二期
  • 原文地址:https://www.cnblogs.com/Doc-Yu/p/12113085.html
Copyright © 2020-2023  润新知