在实际工作中,部署一个应用可能需要部署多个容器,一个一个部署非常不方便。docker compose可以一键部署和启动多个容器,它使用yaml文件来编排服务。github和docker hub很多项目都提供了docker-compose.yaml文件,我们可以一键部署项目,非常方便。
这里可以使用vscode去学习docker compose的格式
docker-compose.yml通常需要包含以下几个顶级元素:
services 中可以通过以下元素定义容器的运行参数
主要关注 端口映射、环境变量、挂载数据持久化、容器重启策略
- 上下级关系
- 不允许使用Tab键,只允许使用空格
- : 键值对,后面必须有空格
- -列表,后面必须有空格
- [ ]数组
- #注释
- {key:value,k1:v1}map
- | 多行文本块
- --- 表示一个文档的开始
- 把公共的配置提取出来,用&来建立锚点,<<合并到当前数据,用*引用锚点
command 支持以下写法:
environment 支持如下两种写法:
容器启动顺序 depends_on
数据库初始化完成之前,不会建立connections。
depends_on 只能保证容器的启动和销毁顺序,不能保证依赖的容器是否ready
要确保应用服务在数据库初始化完成后再启动,需要配合和使用。
condition有三种状态:
- service_started容器已启动
- service_healthy容器处于健康状态
- service_completed_successfully容器执行完成且成功退出(退出状态码为0)
以下是几种常用的重启策略:
- no:这是默认值。表示容器停止后不会自动重启。
- always:表示容器停止后总是自动重启。
- unless-stopped:表示容器停止后除非明确停止(使用 或手动停止),否则总是自动重启。
- on-failure:表示容器非正常退出(即退出状态非 0)时自动重启。可以通过 的 子选项来指定最大的重启次数,例如 表示容器在失败时最多尝试重启 5 次。
- unless-stopped:表示容器停止后除非明确停止(使用 或手动停止),否则总是自动重启。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/19114.html