轻松掌握开发必会的docker套路-yaml语法与docker compose.yml

我们编程的时候常常需要定义配置文件,配置文件的格式也多种多样,有用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语法特点:

  • 大小写敏感
  • 通过缩进表示层级关系
  • 禁止使用tab缩进,只能使用空格键
  • 缩进的空格数目不重要,只要相同层级左对齐即可
  • 使用#表示注释

yaml支持的数据结构

  • 纯量:单个的、不可再分的值,包含字符串,布尔值,整数,浮点数,Null等
  • 对象:键值对的集合
  • 数组:一组按次序排列的值

纯量是最基本的、不可再分的值,写法如下:

#字符串默认不使用引号
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文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

查里王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值