赞
踩
我们编程的时候常常需要定义配置文件,配置文件的格式也多种多样,有用php的数组格式的,有xml格式的,也有json格式的。
由于docker compose使用的配置文件是docker-compose.yml ,yml后缀的文件使用的是yaml语法,所以我们就来聊聊yaml语法。
YAML语言就是专门来写配置文件的语言,它的语法简洁,被很多人认为是可以超越xml和json的文件格式。
先用一个小例子,来体验下!
如果我们要用配置文件存储如下的数据,学校名叫小学,地址为上海松江小学,班级分为2个班级,分别是class1和class2,class1下面有小明,小红,小花三个学生,class2下面有大明,大红,大花三个学生。
json格式展示:
- {
- "school": "小学",
- "address": "上海松江小学",
- "class": {
- "class1": [
- "小明",
- "小红",
- "小花"
- ],
- "class2": [
- "大明",
- "大红",
- "大花"
- ]
- }
- }

php数组格式展示:
- $school=[
- 'school'=>'小学',
- 'address'=>'上海松江小学',
- 'class'=>[
- 'class1'=>[
- "小明",
- "小红",
- "小花"
- ],
- 'class2'=>[
- "大明",
- "大红",
- "大花"
- ]
- ]
- ];

yaml格式展示:
- school: 小学
- address: 上海松江小学
- class:
- - class1:
- - 小明
- - 小红
- - 小花
- - class2:
- - 大明
- - 大红
- - 大花
三种方式对比下,是不是觉得yaml格式写法很简洁,字符不需要加引号,也不需要用大括号来包裹数据,妈妈再也不用担心我大括号没有闭合啦。
了解了yaml的基本展示形式 ,下面来说说yaml语法。
yaml语法特点:
yaml支持的数据结构
纯量是最基本的、不可再分的值,写法如下:
- #字符串默认不使用引号
- str:这是一串文字
- #如果字符串中有空格或者特殊字符需要放在引号中,且单双引号效果一样
- newStr:'名字:张三'
- #整数
- number:12
- #布尔值
- isNumber: true
- #null值用~来表示
- name:~
对象是一组键值对,写法如下(注意字符前面的不是tab缩进,而是空格):
- people:
- name:张三
- age:13
- address:上海
数组是由一组连词线开头的行组成的,写法如下(注意字符前面的不是tab缩进,而是空格):
- class:
- -小明
- -小红
- -小花
数组和对象组合使用:
- people:
- name:张三
- age:13
- address:上海
- class:
- -小明
- -小红
- -小花
好了,关于yaml语法的常用内容就介绍到这里,我想大家对于yaml的语法有了一定的了解了。
接下来,我们来看看,docker compose.yml里面一些常用的配置项。
一份标准的docker-composer.yml文件分为三个部分,分别是version,services和networks。
- version:"3" # 指定 compose 文件的版本,version 1被逐步废弃,最新的版本用3
- services: # 对象格式定义所有的 service 信息
- networks: # 对象格式定义 networks 信息
我们先来看看,这三个部分里面会有哪些选项,我们以nginx为例做说明:
- #定义当前版本
- version: "3"
- #定义我们的服务对象
- services:
- #自定义的服务名称
- nginx:
- #镜像名称,默认拉取本地镜像,没有的话从远程获取
- image: nginx:1.15.7-alpine
- #自定义容器的名称
- container_name: nginx15
- #将宿主机的5000端口映射到容器的80端口
- ports:
- - "5000:80"
- #将宿主机的./www目录和容器的/var/www/html目录进行绑定,并设置rw权限
- #将宿主机的./conf/default.conf和容器的./conf/default.conf进行绑定
- volumes:
- - ./www/:/var/www/html/:rw
- - ./conf/default.conf:/etc/nginx/conf.d/default.conf
- #设置环境变量,当前的时区
- environment:
- TZ: "Asia/Shanghai"
- #容器是否随docker服务启动重启
- restart: always
- #容器加入名为default的网络
- networks:
- - default
- networks:
- #创建了一个自定义的网络叫做default
- default:

好了,以上便是yaml的语法以及docker compose配置项的一些基本说明,希望能帮助你理解docker-compose.yml文件。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。