0%

docker-compose-yml编写规范

“道常无为,而无不为。
侯王若能守之,万物将自化。
化而欲作,吾将镇之以无名之朴。
无名之朴,夫亦将不欲。
不欲以静,天下将自定。”1

docker-compose-yml编写规范

本文不做docker的普及。

在使用docker安装第三方应用或自研服务的时候,不建议使用docker run ...的方式,取而代之的是使用编写相对应的docker-compose.yml文件,从而使用docker-compose ...的方式对容器进行简易且优雅的编排。

然而不规范的编写,也是十分可怕的,我认为从以下四个方面可以整体的把握docker-compose.yml的配置书写,下面以mysql的docker-compose.yml为例进行简单说明:

1
version: '2'
2
services:
3
  mysql-ddsh:
4
    image: mysql:5.6                
5
    network_mode: "host"
6
    ports:
7
    - "3336:3336"
8
    restart: always
9
    volumes:
10
    - "./db:/var/lib/mysql"
11
    - "./my.cnf:/etc/my.cnf"   
12
    environment:
13
      MYSQL_ROOT_PASSWORD: ForAlliance5689
14
      TZ:                  Asia/Shanghai

映射端口配

1
ports:
2
  - "3336:3336" //宿主机端口:容器内端口

挂载配置文件和数据存储路径

1
volumes:
2
  - "./db:/var/lib/mysql" //挂载数据存储路径
3
  - "./my.cnf:/etc/my.cnf"  //挂载配置文件

设置随宿主机自动重启

1
restart: always //随宿主机重启

时区配置

1
TZ: Asia/Shanghai //配置时区

但凡以粗暴的方式写完docker-compose.yml之后,回头检查以下上边四个地方的配置,大体上都不会出问题。

1:老子《道德经》第三十七章,老子故里,中国鹿邑。