zoukankan      html  css  js  c++  java
  • docker学习笔记4-Compose

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

    1. 使用Dockerfile定义环境。
    2. 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
    3. 最后,执行 docker-compose up 命令来启动并运行整个应用程序

      从上述描述中我们可以看出,compose的核心在于配置docker-compose.yml文件,简单的配置及其目的可通过下列模块获取

    #此处需要和你的docker-compose版本一致,例如你的docker-compose版本为1.7.8 那么这个版本就是2
    version: "2" 
    
    
    networks:
      ghost:
    
    #服务,主要用来整合容器,表明他们之前的关系
    services:
      #二级标签是 ghost-app,这个名字是用户自己自定义,它就是服务名称。
      ghost-app:
        #基于一份 Dockerfile,在使用 up 启动之时执行构建任务,
        #这个构建标签就是 build,它可以指定 Dockerfile 所在文件夹的路径
        #这里就是找当前下的ghost文件夹
        build:
            context: ./dir #指定目录
            dockerfile: Dockerfile #指定Dockerfile文件名
            args:
                test:1  #添加构建参数,这是只能在构建过程中使用的环境变量
            labels: #置构建镜像的标签
        ports:
            -9030:9090 #将主机上的9030端口应射到容器的9090端口
        #加入指定网络
        networks:
          - ghost
        #容器的依赖、启动先后的问题,先启动依赖
        depends_on: #启动顺序 db redis ghost_app, 关闭顺序ghost_app, redis, app
          - db
          - redis
        container_name: #指定容器的名字
    
        cap_add: #容器添加宿主主机的内核功能
            - ALL #添加全部
        cap_drop:#容器删除拥有的宿主主机的内核功能
            - SYS_PTRACE #关闭PTRACE权限
        cgroup_parent: m-executor-abcd #为容器指定父cgroup,继承该组的资源限制
    
        command: #覆盖容器默认的启动命令
    
        entrypoint: #覆盖容器默认的entrypoint
    
        deploy: #采用swarm集群的方式部署时才会用到该方案,这里先不详细展开
    
        dns: #自定义dns
    
        devices: #指定设备映射列表  
    
        env_file:  #从文件添加环境变量
    
        environment: #添加环境变量键值对形式 
    
        expose: #暴露端口,但不应射到主机,只被连接的服务访问
    
        extra_hosts: #添加主机名映射 
        
        volumes: #挂载数据卷到容器  
    
        sysctls: #设置容器中的内核参数
    
        restart: #设置重启模式  
    
        networks: #配置容器连接的网络
      nginx:
        image:  nginx:latest #如果不需要build,可通过image指定直接从dockerhub抓取镜像
        container_name: #指定容器的名字而不是使用默认名字
        networks:
            - ghost
        depends_on:
            - ghost-app
        #宿主机会随机映射端口。
        ports:
            - 80:80
            - 88:88
    
      db:
        #指定服务的镜像名称或镜像 ID
        image: mysql:5.7.20
        networks:
          - ghost
        #设置镜像变量,它可以保存变量到镜像里面
        environment:
          MYSQL_ROOT_PASSWORD: mysqlroot
          MYSQL_USER: ghost
          MYSQL_PASSWORD: ghost
        #挂载一个目录或者一个已存在的数据卷容器,
        volumes:
          - ./data:/var/lib/mysql
        ports:
          - 3306:3306
    

    docker-compose常用的命令:

    • docker-compose build 构建
    • docker-compose stop 停止
    • docker-compose up 启动
    • docker-compose rm 删除

    docker-compose安装:

    1. 下载程序
      sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose
    2. 添加执行权限
      chmod +x /usr/bin/docker-compose
    3. 验证安装完成
      docker-compose --version
  • 相关阅读:
    Spring Boot 中使用 @Transactional 注解配置事务管理
    springboot 整合Swagger2的使用
    Vue的参数请求与传递
    SpringMVC的全局异常处理
    SpringBoot集成MyBatis的Bean配置方式
    Springboot整合通用mapper
    个人作业——软件工程实践总结作业
    团队作业第二次—项目选题报告(追光的人)
    结对第二次—文献摘要热词统计及进阶需求
    结对第一次—原型设计(文献摘要热词统计)
  • 原文地址:https://www.cnblogs.com/Rostov/p/13528918.html
Copyright © 2011-2022 走看看