• compose.yml模板文件


    默认的模板文件名称为 docker-compose.yml,格式为 YAML 格式。

    示例:

    version: "3"
    
    services:
      webapp:
        image: examples/web
        ports:
          - "80:80"
        volumes:
          - "/data"

    注意每个服务都必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile)等来自动构建生成镜像。

    如果使用 build 指令,在 Dockerfile 中设置的选项(例如:CMDEXPOSEVOLUMEENV 等) 将会自动被获取,无需在 docker-compose.yml 中再次设置。

    build

    1、

    指定 Dockerfile 所在文件夹的路径(可以是绝对路径,或者相对 docker-compose.yml 文件的路径)。 Compose 将会利用它自动构建这个镜像,然后使用这个镜像。

    version: '3'
    services:
    
      webapp:
        build: ./dir      # dir文佳夹里面有Dockerfile文件

    2、

    你也可以使用 context 指令指定 Dockerfile 所在文件夹的路径。

    使用 dockerfile 指令指定 Dockerfile 文件名。

    使用 arg 指令指定构建镜像时的变量。

    version: '3'
    services:
    
      webapp:
        build:
          context: ./dir     # Dockerfile 所在文件夹的路径。
          dockerfile: Dockerfile-alternate   # Dockerfile 文件名
          args:    # 构建镜像时的变量
            buildno: 1

    使用 cache_from 指定构建镜像的缓存

    build:
      context: .
      cache_from:    # 指定构建镜像的缓存
        - alpine:latest
        - corp/web_app:3.14

    command

    覆盖容器启动后默认执行的命令。

    command: echo "hello world"

    container_name

    指定容器名称。默认将会使用 项目名称_服务名称_序号 这样的格式。

    container_name: docker-web-container

    注意: 指定容器名称后,该服务将无法进行扩展(scale),因为 Docker 不允许多个容器具有相同的名称。

    devices

    指定设备映射关系。

    devices:
      - "/dev/ttyUSB1:/dev/ttyUSB0"

    depends_on

    解决容器的依赖、启动先后的问题。以下例子中会先启动 redis db 再启动 web

    version: '3'
    
    services:
      web:
        build: .
        depends_on:
          - db
          - redis
    
      redis:
        image: redis
    
      db:
        image: postgres

    注意:web 服务不会等待 redis db 「完全启动」之后才启动。

  • 相关阅读:
    Xshell学习第九课:数组与字符串
    Xshell学习第八课:函数
    Xshell学习第七课:sed语句
    Xshell学习第六课:read与for语句循环
    Xshell学习第五课:if判断语句
    Xshell学习第四课:grep与正则表达式
    Xshell学习第三课:编程原理
    Xshell学习第二课:重定向和管道符
    iOS中坐标转换
    iOS工作笔记(十五)
  • 原文地址:https://www.cnblogs.com/zhzhlong/p/9337784.html
Copyright © 2020-2023  润新知