当前位置:   article > 正文

docker-compose语法_docker-compose检查语法

docker-compose检查语法

docker-compose语法

一份标准配置文件应该包含 version、services、networks 三大部分,其中最关键的就是 services 和 networks 两个部分,下面先来看 services 的书写规则。
image

services:
  web:
    image: hello-world
  • 1
  • 2
  • 3

在 services 标签下的第二级标签是 web,这个名字是用户自己自定义,它就是服务名称。
image 则是指定服务的镜像名称或镜像 ID。如果镜像在本地不存在,Compose 将会尝试拉取这个镜像。
build
服务除了可以基于指定的镜像,还可以基于一份 Dockerfile,在使用 up 启动之时执行构建任务,这个构建标签就是 build,它可以指定 Dockerfile 所在文件夹的路径。Compose 将会利用它自动构建这个镜像,然后使用这个镜像启动服务容器。

build: /path/to/build/dir
  • 1

也可以是相对路径,只要上下文确定就可以读取到 Dockerfile。

build: ./dir
  • 1

设定上下文根目录,然后以该目录为准指定 Dockerfile。

build:
  context: ../
  dockerfile: path/of/Dockerfile
  • 1
  • 2
  • 3

command
使用 command 可以覆盖容器启动后默认执行的命令。

command: bundle exec thin -p 3000
  • 1

也可以写成类似 Dockerfile 中的格式:

command: [bundle, exec, thin, -p, 3000]
  • 1

container_name
前面说过 Compose 的容器名称格式是:<项目名称><服务名称><序号>
虽然可以自定义项目名称、服务名称,但是如果你想完全控制容器的命名,可以使用这个标签指定:

container_name: app
  • 1

这样容器的名字就指定为 app 了。
depends_on
在使用 Compose 时,最大的好处就是少打启动命令,但是一般项目容器启动的顺序是有要求的,如果直接从上到下启动容器,必然会因为容器依赖问题而启动失败。
例如在没启动数据库容器的时候启动了应用容器,这时候应用容器会因为找不到数据库而退出,为了避免这种情况我们需要加入一个标签,就是 depends_on,这个标签解决了容器的依赖、启动先后的问题。
例如下面容器会先启动 redis 和 db 两个服务,最后才启动 web 服务:

version: '2'
services:
  web:
    build: .
    depends_on:
      - db
      - redis
  redis:
    image: redis
  db:
    image: postgres
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

注意的是,默认情况下使用 docker-compose up web 这样的方式启动 web 服务时,也会启动 redis 和 db 两个服务,因为在配置文件中定义了依赖关系。

和 --dns 参数一样用途,格式如下:

dns: 8.8.8.8
  • 1

也可以是一个列表:

dns:
  - 8.8.8.8
  - 114.114.114.114
  • 1
  • 2
  • 3

tmpfs
挂载临时目录到容器内部,与 run 的参数一样效果:

tmpfs: /ljt
tmpfs:
  - /ljt
  - /jtluo
  • 1
  • 2
  • 3
  • 4

ports
映射端口的标签。
使用HOST:CONTAINER格式或者只是指定容器的端口,宿主机会随机映射端口。

ports:
 - "80"  #随机映射
 - "8080:8080"
 - "80:8080"
 - "127.0.0.1:8080:8080"
  • 1
  • 2
  • 3
  • 4
  • 5

expose
这个标签与Dockerfile中的EXPOSE指令一样,用于指定暴露的端口,但是只是作为一种参考,实际上docker-compose.yml的端口映射还得ports这样的标签。

expose:
 - "80"
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/74260?site
推荐阅读
相关标签
  

闽ICP备14008679号