yaml 规则
docker-compose.yaml 是 Compose 的核心,咱们一定要学会 yaml 编写的规则
当然,咱们还是查看官方文档,compose 部分
yaml 文件的结构分为三层:
- version
版本号
- services
服务名
- 其他配置,如网络,挂载等公共的东西
version:'' # 版本号
services:
服务器1 web:
当前服务的配置,这个部分就可以和DockerFile 写的差不多了
build
depends_on
...
服务2 redis:
...
服务n mongodb:
network:
volume:
...
其他配置
上面说的到版本号在哪里找呢?
进入 dockerhub 网页,https://docs.docker.com/compose/compose-file/compose-file-v3/
官网上的这些都是可以使用的版本,如官网给出的例子:
version: "3.9"
services:
redis:
image: redis:alpine
ports:
- "6379"
networks:
- frontend
deploy:
replicas: 2
update_config:
parallelism: 2
delay: 10s
restart_policy:
condition: on-failure
...
networks:
frontend:
backend:
volumes:
db-data:
services 和 其他命令都可以写什么呢?
services 下面可以写的命令非常的多,文档上也讲的非常的详细
- Service configuration reference
- build # 构建容器的路径
- context # 指定dockerfile 的路径 或者 git存储库的url
- dockerfile # 指定 dockerfile 文件
- args # 添加构建的参数
- cache_from # 缓存解析的镜像列表
- labels # 添加元数据,我们也可以使用数组或者是字典
- network # 定义网络
- shm_size # 设置构建镜像的分区大小
/dev/shm
,例如 shm_size: ‘2gb’ - target # 指定构建的作用,例如 prod,test,dev
- cap_add, cap_drop # 添加或删除容器的功能
- cgroup_parent # 指定一个可选的父容器组
- command # 覆盖默认命令
- configs # 授予服务配置访问权限
- build # 构建容器的路径