码迷,mamicode.com
首页 > 其他好文 > 详细

compose.yml模板文件

时间:2018-07-19 21:24:32      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:world   res   容器   and   序号   red   设置   version   允许   

默认的模板文件名称为 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 「完全启动」之后才启动。

 

compose.yml模板文件

标签:world   res   容器   and   序号   red   设置   version   允许   

原文地址:https://www.cnblogs.com/zhzhlong/p/9337784.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!