群晖Docker玩法:原来“项目”才是升级容器的终极捷径

作者:欧阳 发布时间:2026年05月21日 阅读: 24 分类:分享发现

用群晖十有八九都接触过 Container Manager(也就是 Docker 套件)。它能让我们在 NAS 上轻松跑各种服务:媒体服务器、下载工具、笔记应用……但有一个操作长期让我头疼——升级容器

你是不是也这样:当软件出了新版本,你的操作流程是→下载新镜像→停止当前容器→删除容器→导出配置(如果还记得的话)→重新创建容器→手动映射端口和文件夹→等待启动……反复折腾,稍不留神配置就丢了。更崩溃的是,如果当时没记端口映射、环境变量,升级基本等于重头再来。

偶然在 Container Manager 里点开了 “项目” 这个选项卡,才发现原来群晖早就内置了类似 docker-compose 的图形化管理功能,升级容器只需要一步:清除 → 重新构建。所有配置自动保留,数据毫发无伤。

docker-compose 是 Docker 官方推荐的容器编排工具,用一个 YAML 文件来描述整个容器的配置:用什么镜像、映射哪些端口、挂在哪个文件夹、设置什么环境变量……把所有的配置写在一个文件里,无论创建还是升级,都只需要一个命令。

群晖的 “项目” 就是 docker-compose 的图形化封装。你可以在 Container Manager 中新建一个“项目”,上传一份写好的 YAML 文件,群晖就会自动部署这个容器。升级时,你只需要修改 YAML 文件(比如把镜像版本号从 1.0 改成 2.0),然后点击“清除”再“重新构建”,群晖就会自动拉取新镜像、停止旧容器、用新配置重建容器——所有端口映射、文件夹挂载、环境变量,全部原封不动继承

不需要手动导出、不需要回忆配置、更不需要重新设置。

用“项目”部署并升级一个例子

以部署 Nginx Web 服务器 为例(也可以换成任何支持 docker-compose 的应用)。

第一步:准备一个 docker-compose.yml 文件

新建一个文本文件,命名为 docker-compose.yml,内容如下:

version: '3.8'
services:
  nginx:
    image: nginx:latest
    container_name: my-nginx
    ports:
      - "8080:80"
    volumes:
      - /volume1/docker/nginx/html:/usr/share/nginx/html
    restart: always

简单解释:

  • image: nginx:latest — 使用最新版的 Nginx 镜像。
  • ports: "8080:80" — 把群晖的 8080 端口映射到容器内的 80 端口。
  • volumes: /volume1/docker/nginx/html:/usr/share/nginx/html — 把群晖上的一个文件夹挂载到容器里,这样网页文件存在 NAS 上,升级容器不会丢失,这里注意要先创建好docker/nginx/html文件夹目录,否则会报错。
  • restart: always — 容器意外退出时自动重启。

第二步:创建项目

  1. 打开群晖的 Container Manager,点击左侧菜单的“项目”。
  2. 点击“新增”,会弹出窗口:

    • 名称:随便起个名字,比如 MyNginx
    • 路径:选择一个存放 YAML 文件的文件夹(比如 /docker/projects/mynginx),这个文件夹下会自动生成 docker-compose.yml 文件(如果你上传的话)。
    • 来源:选择“从文件导入”,然后上传刚才写好的 docker-compose.yml。你也可以直接粘贴内容。
  3. 点击“下一步”,群晖会检查 YAML 格式是否合法,然后显示将要创建的服务列表。
  4. 点击“完成”,Container Manager 会自动拉取镜像并启动容器。

等几秒钟,项目状态变成“运行中”,你就能通过 http://你的群晖IP:8080 看到 Nginx 的欢迎页了。

第三步:升级 Nginx 版本(比如升级到特定版本)

如想把 Nginx 从 latest 升级到 1.25 版本,操作如下:

  1. 回到 Container Manager → 项目,找到你这个项目。
  2. 点击项目右侧的“停止”按钮(或者直接点击项目名称进入详情页,点“操作”下的“停止”)。
  3. 点击“编辑”,进入 YAML 编辑页面。
  4. image: nginx:latest 改成 image: nginx:1.25,然后保存。
  5. 回到项目列表,选中该项目,点击“操作” → “清除”。注意:“清除”会删除容器,但不会删除你挂载的文件夹里的数据(也就是你放在 /volume1/docker/nginx/html 里的网页文件,它们还在)。
  6. 清除完成后,点击“构建”按钮(或者“重新构建”)。群晖会自动拉取 nginx:1.25 镜像,并用你刚编辑的 YAML 配置创建一个新容器,如是同版本或使用的是latest,需要先删除latest的镜像,重新构建即可。
  7. 等待几秒,项目状态重新变成“运行中”。恭喜,升级完成!

你发现没有?整个过程你只改了一行代码,点了两三个按钮。端口、挂载、重启策略等全部自动沿用,根本不需要重新设置。

为什么“项目”这么香?对比一下就知道了

特性传统手动升级使用项目 / docker-compose
记录配置靠脑子或截图一个 YAML 文件搞定
升级步骤停容器→删容器→新建→配参数改镜像版本→清除→重新构建
配置丢失风险高(容易忘端口)无(配置始终在YAML里)
多容器应用逐个手动操作一个文件同时管理多个容器
回退版本麻烦,要重新配置旧版本改回旧镜像版本→重新构建即可

群晖的 “项目” 功能其实一直在那里,只是我们总盯着“容器”和“注册表”,忽略了它。它把 docker-compose 的强大能力带给了图形界面用户,让升级从“繁琐工程”变成了“一键操作”。

如果你现在还在手动点来点去升级容器,强烈建议你花5分钟试试“项目”。把你常用的那些服务(比如 Jellyfin、Transmission、Home Assistant、Cloudreve 等)都写成 YAML 文件,从此升级只需改版本号、清除、构建——这种感觉,用过一次就回不去了。

技术本应让生活更简单,不要让“怕麻烦”变成你升级软件的绊脚石。快去试试吧,保证你会回来感谢我 😄

如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。
如果您觉得本文还不错,欢迎分享/打赏本文。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!

标签: 群晖, Docker

添加新评论 »