玩转绿联NAS:小白入坑之如何使用Docker compose搭建项目?

2026-08-13 09:32:24 0点赞 1收藏 0评论

一、什么是Docker Compose?

Docker Compose 是 Docker 官方推出的一个多容器应用编排工具。它的核心作用是帮助开发者通过一个命令,就能启动、停止和管理一组相互关联的Docker容器。

可以把Docker Compose理解成一个“容器乐队指挥”。当你的应用包含多个服务(如前端、后端、数据库、缓存等)时,逐个手动启动和管理它们会非常繁琐。Docker Compose 能让你用一个统一的“乐谱”(即配置文件)来指挥所有“乐手”(即容器)协同工作。

二、为什么需要 Docker Compose?

小白理解:告别繁琐的命令,直接用一个yaml文件就可以一键启动。

三、既然这么方便在绿联上怎么用?

1、进入应用中心,先要安装docker,然后打开docker

玩转绿联NAS:小白入坑之如何使用Docker compose搭建项目?玩转绿联NAS:小白入坑之如何使用Docker compose搭建项目?

2、选择项目-点击创建;

玩转绿联NAS:小白入坑之如何使用Docker compose搭建项目?

3、打开文件管理器-共享文件夹-docker-创建项目名称的文件夹,如test

玩转绿联NAS:小白入坑之如何使用Docker compose搭建项目?

4、然后把项目的docker compose粘贴到下方compose配置,点击立即部署就会开始,然后如果是勾选了创建完成后立即运行,就会直接启动;

玩转绿联NAS:小白入坑之如何使用Docker compose搭建项目?

5、基础的Docker compose搭建项目教程就结束了。

四、基础的语法解读

1、挂载路径解析(Volumes)

在 compose.yaml 中,volumes 的写法分为三种类型,路径解析规则如下:

玩转绿联NAS:小白入坑之如何使用Docker compose搭建项目?

关键注意点(易错):

  • 宿主机路径不存在:如果使用相对/绝对路径(绑定挂载),且宿主机目录不存在,Docker 会自动创建该目录(但如果是文件,则会报错)。

  • 权限问题:宿主机目录的 UID/GID 会映射到容器内。若容器内进程(如 Nginx 以 www-data 用户运行)无权限读写,需确保宿主机目录权限或使用 :z / :Z(SELinux)或 :c(Windows)标志。

  • 只读挂载:在路径末尾加 :ro,容器内将无法修改该目录。- ./config:/app/config:ro

2、重启方法(Restart)

这里需要严格区分 “重启策略”(配置) 和 “手动重启命令”(操作)

A、重启策略(restart 字段)

写在 Compose 文件中,定义容器异常退出后的行为:

玩转绿联NAS:小白入坑之如何使用Docker compose搭建项目?

B、手动重启命令(操作)

在终端执行,用于立即生效配置变更或重置容器状态:

玩转绿联NAS:小白入坑之如何使用Docker compose搭建项目?

3、镜像(Image)

Docker Compose 中,image 字段的写法决定了从哪里拉取或如何命名:

玩转绿联NAS:小白入坑之如何使用Docker compose搭建项目?

A、与 build 联动(重要):
如果同时写了 image 和 build

玩转绿联NAS:小白入坑之如何使用Docker compose搭建项目?
  • 含义:docker compose build 会构建镜像并打上 myapp:dev 标签。

  • 若 只写 build 不写 image,Compose 会自动生成一个随机镜像名(如 project_app)。

  • 若 只写 image 不写 build,直接拉取该镜像。

B、拉取策略(pull_policy):

  • always:每次都尝试拉取最新镜像。

  • missing:本地没有时才拉取(默认)。

  • never:强制使用本地,存在则用,不存在则报错。


4、环境变量(Environment Variables)

Docker Compose 里有两种截然不同的环境变量,最容易混淆:

A、容器内环境变量(给应用读的)

  • 使用 environment 或 env_file,写入容器的系统环境变量中(如 process.env 或 $_ENV)。

玩转绿联NAS:小白入坑之如何使用Docker compose搭建项目?

B、Compose 文件自身的变量替换(给 Compose 读的)

  • 在 yaml 文件的 值中 使用 ${VARIABLE},让 Compose 在解析文件时进行文本替换。

玩转绿联NAS:小白入坑之如何使用Docker compose搭建项目?
  • 这种变量默认从 .env 文件(项目根目录)或 当前 Shell 环境 中读取。

C、优先级顺序(由高到低):

  • docker compose 命令行设置:docker compose run -e VAR=value ...

  • Shell 环境变量:export VAR=value && docker compose up

  • Compose 文件内的 environment 字段

  • env_file 指定的文件

  • 镜像自带的默认环境变量(如 MYSQL_ROOT_PASSWORD 默认空)

安全提醒:environment 字段明文显示在 yaml 中,绝对不要写数据库密码等敏感信息。建议使用 env_file + .env(并加入 .gitignore),或使用 Docker Secrets(生产环境)。

5、最终总结

  • 挂载:牢记 ./ 是相对项目目录,命名卷不带点;权限不够就改宿主机目录权限。

  • 重启:改配置用 up -d(重建),只重置进程用 restart

  • 镜像:和 build 配合可以打标签;生产环境强烈建议用 @sha256 锁定版本。

  • 环境变量:区分“给容器用的”和“给 Compose 文件用的”,密码千万别写死在 environment 里。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
1
扫一下,分享更方便,购买更轻松