上一篇讲过在飞牛 NAS 上跑起第一个容器,后台留言最多的一句是:「容器是跑起来了,但每次重启、看日志都要 SSH 敲命令,有没有个面板?」

有。它叫 Portainer——Docker 生态里最常用的图形化管理面板。装上它,启动/停止容器、看日志、管镜像、改配置,全部点鼠标完成。装完之后,你以后在 NAS 上装任何新应用,都只是「粘贴一段 yaml,点确定」的事。

这篇照旧给可复制的完整命令,照抄就能跑。

先花 2 分钟搞懂三个词

Docker 的概念包装得很唬人,其实核心就三个:

镜像(Image):一个应用的「安装光盘」,只读模板。Portainer 的镜像就是一个打包好的 Portainer。

容器(Container):用光盘装出来的「运行中的实例」。同一张光盘可以装多份。

Compose(yaml 文件):一份「安装清单」,把镜像、端口、存储路径写清楚,一条命令照单全装。

记住一句话:镜像是不动的模板,容器是跑起来的实例,compose 是自动化安装单。够了。

第一步:确认飞牛的 Docker 环境

飞牛 fnOS(新版叫 fnOS Plus 也一样)内置了 Docker,先 SSH 进 NAS(或用飞牛终端)确认环境:

docker version

docker compose version

两条都能正常显示版本号。如果你的飞牛没有 Docker 入口,去「应用中心」把 Docker(容器)功能启用即可。

第二步:一条命令装 Portainer

直接粘贴运行:

docker run -d \

--name portainer \

--restart=always \

-p 9443:9443 \

-v /var/run/docker.sock:/var/run/docker.sock \

-v portainer_data:/data \

portainer/portainer-ce:latest

拆解一下这几行在干嘛(理解了以后装任何容器都不慌):

-d:后台运行

--restart=always:NAS 重启后 Portainer 自动拉起,不用管

-p 9443:9443:把容器的 9443 端口映射到 NAS 的 9443,浏览器访问入口

-v /var/run/docker.sock:...:把 Docker 的「总开关」交给 Portainer,它才能管理所有容器

-v portainer_data:/data:Portainer 自己的数据存到 named volume,容器删了配置不丢

跑完执行 docker ps,看到 portainer 状态是 Up 就成功了。

第三步:打开面板,三下设置完成

浏览器访问:

https://NAS的IP:9443

注意是 https,浏览器会提示证书风险,点「高级→继续访问」即可(本地自用,正常现象)。

然后:

创建管理员账号(密码至少 12 位)

选 Get Started → local,进入本地 Docker 环境

看到 Dashboard 上显示你 NAS 里的容器列表——大功告成

装完之后的世界

从这一刻起,你的 NAS 使用体验发生质变:

看日志:点容器 → Logs,实时滚动,再也不用 docker logs

重启/停止:一个按钮,不再 docker restart

装新应用:左侧 Stacks → Add stack,把网上找的 compose yaml 整段粘贴,Deploy 就完事。Jellyfin、qBittorrent、Home Assistant……全是这个流程

更新应用:镜像列表里 Pull 最新版,重建容器,两分钟

举个例子,之后你想装个下载工具,在 Stack 里贴:

services:

qbittorrent:

image: linuxserver/qbittorrent:latest

ports:

- "8080:8080"

volumes:

- /vol1/1000/downloads:/downloads

restart: always

点 Deploy,10 秒后 http://NAS的IP:8080 就是你的下载站。

常见问题

打不开 9443? 检查防火墙/安全组放行;或换成 -p 9443:9443 时前面端口被占,改映射(如 -p 19443:9443)。

误装成了 BE 版? portainer-ce 是免费社区版,portainer-be 是商业版要授权,认准 ce。

重启 NAS 后容器没起来? 检查是否加了 --restart=always;已建的容器可以在 Portainer 面板里点开容器 → 勾选 Restart Policy 补上。

数据会丢吗? 只要用的是 named volume(portainer_data:/data 这种写法),删容器重建配置都在。别把数据只存在容器内部就行。

NAS 玩家的尽头是「装完 Portainer,然后疯狂装应用」。你 NAS 上跑的第一个容器是什么?评论区晒晒。

(关键词:飞牛OS、fnOS、Portainer、Docker 面板、NAS 教程)