编程知识 cdmana.com

5.docker-compose.yml文件管理

docker-compose文件管理

  1. 简述

    Compose 是用于定义和运行多容器 Docker 应用程序的工具。
    # 步骤
    1.	使用 Dockerfile 定义应用程序的环境。
    2.	使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
    3.	最后,执行 docker-compose up 命令来启动并运行整个应用程序。
    # yml文件组成部分
    version
    services
    networks
    volumes
    
    
  2. docker-compose.yml文件示例

    version: "3"
    services:
      eureka:
        image: 镜像名:tag
        build: .
        env_file:
          - .env
        deploy:
          resources:
            limits:
              cpus: '1.50'
              memory: 3072M
        volumes:
          - /data/Log:/data/log
          - /etc/localtime:/etc/localtime
        environment:
          SKYWALKING_AGENT_SERVICE_NAME: eureka
        network_mode: "host"
        ports:
          - 1111:1111
    
  3. services的书写规则

    • image
      # 镜像
      services: 
        eureka: # 自定义服务名
          image: 镜像名:tag # 镜像
      # 格式如下
      image: redis
      image: mysql:5.7.26
      image: 192.168.168.22/base/eureka:v1
    
    • build
      # 基于Dockerfile,指定Dockerfile所在路径
      # 绝对路径
      build: /path/build
      # 相对路径
      build: .
      # 设置上下文和目录
      build:
        context: ../
        dockerfile: path/Dockerfile
      # 指定环境变量
      build: 
        context: .
        args:
          - key1=value1
          - key2=value2
    
    • env_file
      # 指定配置文件
      env_file: .env
      # 注意: 若与environment指令冲突,以后者为准
      # 设置多个
      env_file:
        - .env
        - test.env
    
    • volumes
      # 挂载一个目录或者已经存在的数据卷容器
      volumes:
        - /data/Log:/data/log # 使用绝对路径挂载数据卷
        - /var/lib/mysql # 只是指定一个路径,Docker 会自动在创建一个数据卷
        - ./log:/data/log # 使用相对路径挂载数据卷
        - datavolume:/var/lib/mysql #已经存在的命名的数据卷
    
    • environment
      # 设置镜像变量
      environment:
        key1: value1
        key2: value2
      或者
      environment:
        - key1=value1
        - key2=value2
    
    • network_mode
      # 网络模式 5种
      network_mode: "host"
      network_mode: "bridge"
    
    • ports
      # 映射端口
      ports:
        - 1111:1111
        - 8889:8888
       #映射端口:容器端口
    
    • depends_on
      # 容器依赖
      depends_on:
        - eureka
        - db
    
    • deploy
      # 指定与部署和运行服务相关的配置
      # 子项 resources
      deploy:
        resources:
          limits: # 资源不能超过现在
            cpus: '1.50'
            memory: 3072M
          reservations: # 保留资源
            cpus: '0.25'
            memory: 100M
    
    • 其他
       # 其他配置
       dns
       tmpfs
       container_name
    
  4. volumes

    # 数据卷
    volumes:
      datavolume: 
    

版权声明
本文为[qms19]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/qms19/p/14188080.html

Scroll to Top