在 Debian 环境下安装 Docker Compose
官网文档:https://docs.docker.com/compose/
安装
参考文档:https://docs.docker.com/compose/install/linux/#install-using-the-repository
安装 docker 时,可以选择全套安装。如果之前没有全套安装,现在只需要安装 docker-compose-plugin。
docker 全套安装参考:Docker Install 在 Debian 环境
compose.yaml 语法规则
Docker Compose 文件的默认路径为 compose.yaml (推荐使用)或 compose.yml,这些文件都保存在工作目录中。
常用命令
shell
# (前台启动)启动 compose.yaml 文件中定义的所有服务
docker compose up
# (推荐)后台启动(不会占用命令行窗口)
docker compose up -d
# 指定配置文件
docker compose -f /opt/nginx/compose.yaml up -d
# 停止并终止正在运行的服务(会删除相关的容器,但不会删除卷数据)
docker compose down
# 连数据卷一起删除(数据清空,慎用!)
docker compose down -v
# 删除容器 + 删除网络 + 删除镜像
docker compose down --rmi all
# 查看 compose.yaml 文件中定义的所有服务日志
docker compose logs
# 实时刷新指定服务的日志
docker compose logs -f vita
# 列出 compose.yaml 文件中定义的所有服务及其当前状态
docker compose ps日常使用
启动服务(长期运行)
shell
docker compose up -d查看后台容器日志(想看日志时用)
shell
# -f 实时跟踪
docker compose logs -f重启服务
shell
docker compose -f /opt/nginx/compose.yaml restart修改配置后重启
shell
docker compose down
docker compose up -d重置(清空所有东西,包括数据)
shell
docker compose down -v彻底销毁环境(删除容器 + 删除网络 + 删除镜像)
shell
docker compose down --rmi all关于 environment 的写法格式
字典格式(KEY: value)
yaml
environment:
APP_DEBUG: "true"
APP_PORT: "8080"
APP_NAME: my-app优点:视觉干净,结构清晰,看起来像配置文件。
痛点:YAML 有自动类型推断。如果不加引号,true、false、123 会被解析成布尔或数字,而 Docker 要求环境变量必须是字符串,可能导致应用无法识别。
必须加引号的场景:值包含 true/false、纯数字、yes/no、特殊字符(如 *、{、} 等 YAML 敏感符号)。
列表格式(- KEY=value)
yaml
environment:
- APP_DEBUG=true
- APP_PORT=8080
- APP_NAME=my-app优点:绝对安全,= 后面的整个值都被当作普通字符串,不会触发 YAML 的类型转换。即使写 - RUSTFS_CONSOLE_ENABLE=true 也不用加引号。
缺点:稍微冗长,视觉上不如字典整齐。
最佳实践
日常使用中,我更推荐使用列表格式(- KEY=value),理由很简单:
它永远不会因为 YAML 的自动类型推断而踩坑,书写时完全不用思考“这个值要不要加引号”,安全且一致。
如果你更喜欢字典格式的简洁,那么一定要养成习惯:所有值都加上引号。
