Docker Compose 配置文件 Docker-Compose.yml 文件详解
每个docker-compose.yml必须定义 image 或者 build 中的一个,其它的是可选的。注意,在 version 1 里 bulid 仅支持值为字符串。context 为路径, dockerfile 为需要替换默认 docker-compose 的文件名, args 为构建过程中的环境变量,用于替换Dockerfile里定义的 ARG 参数,容器中不可用。链接搭配 docker-compose.yml 文件或者 Compose 之外定义的服务,通常是提供共享或公共服务。将会在 /etc/hosts 创建记录:继承自当前yml文件或者其它文件中定义的服务,可以选择性的覆盖原有配置。service 是需要继承的服务,例如 web 、 database 。《Docker Compose 配置文件 Docker-Compose.yml 文件详解》来自互联网同行内容,若有侵权,请联系我们删除!
每个docker-compose.yml必须定义
image
或者
build
中的一个,其它的是可选的。指定镜像tag或者ID。示例:注意,在
version 1
里同时使用
image
和
build
是不允许的,
version 2
则可以,如果同时指定了两者,会将
build
出来的镜像打上名为
image
标签。开发云主机域名build用来指定一个包含Dockerfile文件的路径。一般是当前目录.。Fig将build并生成一个随机命名的镜像。注意,在
version 1
里
bulid
仅支持值为字符串。
version 2
里支持对象格式。
context
为路径,
dockerfile
为需要替换默认
docker-compose
的文件名,
args
为构建(build)过程中的环境变量,用于替换Dockerfile里定义的
ARG
参数,容器中不可用。示例:
Dockerfile:docker-compose.yml:用来覆盖缺省命令。示例:
command
也支持数组形式:用于链接另一容器服务,如需要使用到另一容器的mysql服务。可以给出服务名和别名;也可以仅给出服务名,这样别名将和服务名相同。同
docker run --link
。示例:使用了别名将自动会在容器的
/etc/hosts
文件里创建相应记录:所以我们在容器里就可以直接使用别名作为服务的主机名。用于暴露端口。同
docker run -p
。示例:expose提供container开发云主机域名之间的端口访问,不会暴露给主机使用。同
docker run --expose
。挂载数据卷。同
docker run -v
。示例:挂载数据卷容器,挂载是容器。同
docker run --volumes-from
。示例:
container:container_name
格式仅支持
version 2
。添加环境变量。同
docker run -e
。可以是数组或者字典格式:使用 Compose 时,最大的好处就是少打启动命令,但是一般项目容器启动的顺序是有要求的,如果直接从上到下启动容器,必然会因为容器依赖问题而启动失败。
例如在没启动数据库容器的时候启动了应用容器,这时候应用容器会因为找不到数据库而退出,为了避免这种情况我们需要加入一个标签,就是 depends_on,这个标签解决了容器的依赖、启动先后的问题。
例如下面容器会先启动 redis 和 db 两个服务,最后才启动 web 服务:注意的是,默认情况下使用 docker-compose up web 这样的方式启动 web 服务时,也会启动 redis 和 db 两个服务,因为在配置文件中定义了依赖关系。链接搭配
docker-compose.yml
文件或者
Compose
之外定义的服务,通常是提供共享或公共服务。格式与
links
相似:注意,
external_links
链接的服务与当前服务必须是同一个网络环境。添加主机名映射。将会在
/etc/hosts
创建记录:继承自当前yml文件或者其它文件中定义的服务,可以选择性的覆盖原有配置。
service
必须有,
file
可选。
service
是需要继承的服务,例如
web
、
database
。设置网络模式。同docker的
--net
参数。开发云主机域名自定义dns服务器。完整列子:
本文从转载,原作者保留一切权利,若侵权请联系删除。
《Docker Compose 配置文件 Docker-Compose.yml 文件详解》来自互联网同行内容,若有侵权,请联系我们删除!