美文网首页
docker-compose.yml 文件说明

docker-compose.yml 文件说明

作者: sorry510 | 来源:发表于2021-03-23 14:34 被阅读0次

    例子

    docker-compose.yml

    # yaml 配置实例
    version: '3'
    services:
      web:
        build: .
        ports:
       - "5000:5000"
        volumes:
       - .:/code
        - logvolume01:/var/log
        links:
       - redis
      redis:
        image: redis
    volumes:
      logvolume01: {}
    

    相关指令

    version

    指定本 yml 依从的 compose 哪个版本制定的

    services

    多个容器集合

    build

    指定为构建镜像上下文路径

    • 指定为从上下文路径 ./dir/Dockerfile 所构建的镜像
    version: "3.7"
    services:
      webapp:
        build: ./dir
    
    • 上下文指定的路径的对象
    version: "3.7"
    services:
      webapp:
        build:
          context: ./dir
          dockerfile: Dockerfile
          args:
            buildno: 1
          labels:
            - "com.example.description=Accounting webapp"
            - "com.example.department=Finance"
            - "com.example.label-with-empty-value"
          target: prod
    

    context:上下文路径。
    dockerfile:指定构建镜像的 Dockerfile 文件名。
    args:添加构建参数,这是只能在构建过程中访问的环境变量。
    labels:设置构建镜像的标签。
    target:多层构建,可以指定构建哪一层。

    command

    覆盖容器启动的默认命令

    command: ["bundle", "exec", "thin", "-p", "3000"]
    

    container_name

    指定自定义容器名称,而不是生成的默认名称

    container_name: react
    

    depends_on

    设置依赖关系。
    docker-compose up :以依赖性顺序启动服务。在以下示例中,先启动 db 和 redis ,才会启动 web。
    docker-compose up SERVICE :自动包含 SERVICE 的依赖项。在以下示例中,docker-compose up web 还将创建并启动 db 和 redis。
    docker-compose stop :按依赖关系顺序停止服务。在以下示例中,web 在 db 和 redis 之前停止。

    version: "3.7"
    services:
      web:
        build: .
        depends_on:
          - db
          - redis
      redis:
        image: redis
      db:
        image: postgres
    

    entrypoint

    覆盖容器默认的 entrypoint

    entrypoint: /code/entrypoint.sh
    
    entrypoint:
        - php
        - -d
        - zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so
        - -d
        - memory_limit=-1
        - vendor/bin/phpunit
    

    env_file

    从文件添加环境变量。可以是单个值或列表的多个值

    env_file: .env
    
    env_file:
      - ./common.env
      - ./apps/web.env
      - /opt/secrets.env
    

    environment

    添加环境变量。您可以使用数组或字典、任何布尔值,布尔值需要用引号引起来,以确保 YML 解析器不会将其转换为 True 或 False

    environment:
      RACK_ENV: development
      SHOW: 'true'
    

    expose

    暴露端口,但不映射到宿主机,只被连接的服务访问

    expose:
     - "3000"
     - "8000"
    

    logging

    服务的日志记录配置,指定服务容器的日志记录驱动程序,默认值为json-file。有以下三个选项

    driver: "json-file"
    driver: "syslog"
    driver: "none"
    

    network_mode

    设置网络模式

    network_mode: "bridge"
    network_mode: "host"
    network_mode: "none"
    network_mode: "service:[service name]"
    network_mode: "container:[container name/id]"
    

    restart

    重启策略
    no:是默认的重启策略,在任何情况下都不会重启容器。
    always:容器总是重新启动。
    on-failure:在容器非正常退出时(退出状态非0),才会重启容器。
    unless-stopped:在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器

    restart: "no"
    restart: always
    restart: on-failure
    restart: unless-stopped
    

    volumes

    将主机的数据卷或着文件挂载到容器里。

    version: "3.7"
    services:
      db:
        image: postgres:latest
        volumes:
          - "/localhost/postgres.sock:/var/run/postgres/postgres.sock"
          - "/localhost/data:/var/lib/postgresql/data"
    

    ports

    端口映射

    services:
      ant-design-pro_web:
        image: nginx
        ports:
          - 80:80
    

    networks

    配置容器连接的网络

    volumes

    配置数据卷

    相关文章

      网友评论

          本文标题:docker-compose.yml 文件说明

          本文链接:https://www.haomeiwen.com/subject/glsocltx.html