当前位置:   article > 正文

轻松掌握开发必会的docker套路-yaml语法与docker compose.yml_docker yml和yaml建议用哪个

docker yml和yaml建议用哪个

我们编程的时候常常需要定义配置文件,配置文件的格式也多种多样,有用php的数组格式的,有xml格式的,也有json格式的。

由于docker compose使用的配置文件是docker-compose.yml ,yml后缀的文件使用的是yaml语法,所以我们就来聊聊yaml语法。

YAML语言就是专门来写配置文件的语言,它的语法简洁,被很多人认为是可以超越xml和json的文件格式。

先用一个小例子,来体验下!

如果我们要用配置文件存储如下的数据,学校名叫小学,地址为上海松江小学,班级分为2个班级,分别是class1和class2,class1下面有小明,小红,小花三个学生,class2下面有大明,大红,大花三个学生。

json格式展示:

  1. {
  2. "school": "小学",
  3. "address": "上海松江小学",
  4. "class": {
  5. "class1": [
  6. "小明",
  7. "小红",
  8. "小花"
  9. ],
  10. "class2": [
  11. "大明",
  12. "大红",
  13. "大花"
  14. ]
  15. }
  16. }

php数组格式展示:

  1. $school=[
  2. 'school'=>'小学',
  3. 'address'=>'上海松江小学',
  4. 'class'=>[
  5. 'class1'=>[
  6. "小明",
  7. "小红",
  8. "小花"
  9. ],
  10. 'class2'=>[
  11. "大明",
  12. "大红",
  13. "大花"
  14. ]
  15. ]
  16. ];

yaml格式展示:

  1. school: 小学
  2. address: 上海松江小学
  3. class:
  4. - class1:
  5. - 小明
  6. - 小红
  7. - 小花
  8. - class2:
  9. - 大明
  10. - 大红
  11. - 大花

三种方式对比下,是不是觉得yaml格式写法很简洁,字符不需要加引号,也不需要用大括号来包裹数据,妈妈再也不用担心我大括号没有闭合啦。

 

了解了yaml的基本展示形式 ,下面来说说yaml语法。

yaml语法特点:

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

yaml支持的数据结构

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

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

  1. #字符串默认不使用引号
  2. str:这是一串文字
  3. #如果字符串中有空格或者特殊字符需要放在引号中,且单双引号效果一样
  4. newStr:'名字:张三'
  5. #整数
  6. number:12
  7. #布尔值
  8. isNumber: true
  9. #null值用~来表示
  10. name:~

对象是一组键值对,写法如下(注意字符前面的不是tab缩进,而是空格):

  1. people:
  2. name:张三
  3. age:13
  4. address:上海

数组是由一组连词线开头的行组成的,写法如下(注意字符前面的不是tab缩进,而是空格):

  1. class:
  2. -小明
  3. -小红
  4. -小花

数组和对象组合使用:

  1. people:
  2. name:张三
  3. age:13
  4. address:上海
  5. class:
  6. -小明
  7. -小红
  8. -小花

好了,关于yaml语法的常用内容就介绍到这里,我想大家对于yaml的语法有了一定的了解了。

接下来,我们来看看,docker compose.yml里面一些常用的配置项。

一份标准的docker-composer.yml文件分为三个部分,分别是version,services和networks。

  1. version:"3" # 指定 compose 文件的版本,version 1被逐步废弃,最新的版本用3
  2. services: # 对象格式定义所有的 service 信息
  3. networks: # 对象格式定义 networks 信息

我们先来看看,这三个部分里面会有哪些选项,我们以nginx为例做说明:

  1. #定义当前版本
  2. version: "3"
  3. #定义我们的服务对象
  4. services:
  5. #自定义的服务名称
  6. nginx:
  7. #镜像名称,默认拉取本地镜像,没有的话从远程获取
  8. image: nginx:1.15.7-alpine
  9. #自定义容器的名称
  10. container_name: nginx15
  11. #将宿主机的5000端口映射到容器的80端口
  12. ports:
  13. - "5000:80"
  14. #将宿主机的./www目录和容器的/var/www/html目录进行绑定,并设置rw权限
  15. #将宿主机的./conf/default.conf和容器的./conf/default.conf进行绑定
  16. volumes:
  17. - ./www/:/var/www/html/:rw
  18. - ./conf/default.conf:/etc/nginx/conf.d/default.conf
  19. #设置环境变量,当前的时区
  20. environment:
  21. TZ: "Asia/Shanghai"
  22. #容器是否随docker服务启动重启
  23. restart: always
  24. #容器加入名为default的网络
  25. networks:
  26. - default
  27. networks:
  28. #创建了一个自定义的网络叫做default
  29. default:

好了,以上便是yaml的语法以及docker compose配置项的一些基本说明,希望能帮助你理解docker-compose.yml文件。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/74151
推荐阅读
相关标签
  

闽ICP备14008679号