Docker 玩法

飞牛NAS部署Portainer:Docker可视化管理

为什么需要在飞牛NAS上部署Portainer?

飞牛NAS(fnOS)自带的Docker管理界面虽然简洁易用,但在面对复杂容器编排、多环境管理或批量操作时,功能略显单薄。Portainer作为目前最流行的Docker图形化管理工具,提供了从容器、镜像、网络到卷的全面可视化操作,还支持模板部署、权限控制和监控面板。对于习惯使用群晖或威联通的老玩家来说,Portainer的界面和逻辑更接近传统NAS的Docker套件,上手几乎零成本。

本教程将带你从零开始在飞牛NAS上部署Portainer,全程使用SSH终端操作,约5分钟即可完成。

准备工作

在开始之前,请确保你的飞牛NAS满足以下条件:

  • fnOS版本在0.8.0以上(建议最新版)
  • 已开启SSH服务(控制面板-终端机-SSH)
  • 有可用的终端工具(Windows用Putty,macOS直接终端)

通过SSH登录NAS后,先确认Docker环境正常:

sudo -i
docker --version
docker ps

如果能看到Docker版本号且容器列表为空,说明环境就绪。

部署Portainer

创建持久化数据卷

Portainer的配置数据需要持久化保存,否则容器重建后所有设置都会丢失。我们创建一个专用卷:

docker volume create portainer_data

使用docker volume ls确认卷已创建。

部署Portainer容器

Portainer分为CE(社区版)和BE(商业版),我们使用免费的CE版。官方推荐使用portainer/portainer-ce:latest镜像。

执行以下命令启动容器:

docker run -d \
  --name portainer \
  --restart=always \
  -p 9000:9000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:latest

参数说明:

  • -d:后台运行
  • --name portainer:容器名称
  • --restart=always:开机自启动
  • -p 9000:9000:映射宿主机9000端口
  • -v /var/run/docker.sock:/var/run/docker.sock:挂载Docker套接字,让Portainer能管理Docker
  • -v portainer_data:/data:挂载数据卷

等待镜像拉取和容器启动:

docker logs -f portainer

看到类似“Starting Portainer”的日志后,按Ctrl+C退出日志查看。

验证容器运行状态

docker ps | grep portainer

如果输出中STATUS为“Up”,说明部署成功。此时通过浏览器访问http://你的飞牛IP:9000,应该能看到Portainer的初始化页面。

首次配置Portainer

创建管理员账号

浏览器打开http://NAS_IP:9000后,第一次访问需要设置管理员密码。密码要求至少12位,包含大小写字母和数字。设置完成后点击“Create user”。

连接Docker环境

首次登录会进入“Quick Setup”引导页,选择“Docker Standalone”环境类型,然后点击“Connect”即可。Portainer会自动检测到飞牛NAS上的Docker引擎。

Portainer常用功能实战

1. 仪表盘监控

登录后首页Dashboard会展示当前Docker环境的资源使用情况,包括容器数量、镜像数量、CPU和内存占用率。这个界面比飞牛自带的监控更直观,方便快速定位问题容器。

2. 容器管理

点击左侧菜单“Containers”,你可以看到所有运行中的容器。这里可以执行:

  • 点击容器名称查看详细日志和统计信息
  • 点击“Quick Actions”快速启动/停止/重启容器
  • 点击“Add container”创建新容器,支持图形化配置端口映射、环境变量、卷挂载等

例如,要创建一个Nginx容器,只需填写镜像名nginx:latest,映射80端口,点“Deploy”即可。

3. 镜像管理

在“Images”页面可以查看本机所有镜像,支持从Docker Hub搜索并拉取镜像,也可以手动上传本地镜像文件。右键镜像还能一键创建容器,比命令行操作方便很多。

4. 应用模板

Portainer内置了大量应用模板(Templates),涵盖数据库、CMS、监控工具等常用服务。点击“App Templates”,选择你需要的应用,填写几个参数就能自动完成容器编排。例如部署一个WordPress,只需设置数据库密码和端口号,Portainer会自动创建WordPress和MySQL两个容器并配置好网络。

5. 设置反向代理

如果你有多个Web服务部署在NAS上,可以在Portainer的“Settings”中配置反向代理规则,通过域名或路径区分不同服务,避免端口冲突。

常见问题与解决

端口9000被占用怎么办?

如果9000端口已被其他服务使用,修改部署命令中的映射端口,例如改为-p 9001:9000,访问时使用9001端口。

容器启动后无法访问

首先检查容器日志:

docker logs portainer

然后确认防火墙是否放行对应端口。飞牛NAS默认防火墙可能拦截外部访问,在控制面板-安全-防火墙中添加入站规则放行9000端口。

如何升级Portainer?

停止并删除旧容器,然后重新拉取镜像并部署:

docker stop portainer
docker rm portainer
docker pull portainer/portainer-ce:latest
# 重新执行部署命令

数据卷portainer_data会保留,升级后所有设置不丢失。

与飞牛NAS自带Docker管理的对比

飞牛NAS的Docker管理器适合快速部署单容器应用,界面简洁,但对网络模式、容器间通信等高级配置支持较弱。Portainer则提供了更完整的Docker API支持,特别适合以下场景:

  • 管理多个容器组成的项目(如WordPress+MySQL)
  • 需要查看容器CPU/内存实时曲线
  • 使用模板快速部署复杂应用
  • 通过角色权限控制多人访问

两者可以共存,飞牛自带管理器处理日常维护,Portainer用于深度操作。

总结

通过本教程,你已在飞牛NAS上成功部署了Portainer,并掌握了基本的使用方法。Portainer将Docker的复杂命令转化为直观的图形界面,大幅降低了容器管理的门槛。建议你花些时间浏览各个菜单,尝试用“App Templates”部署一个数据库或博客应用,感受图形化编排带来的便利。后续如果有跨主机管理需求,还可以在Portainer中添加远端Docker环境,实现统一管控。现在,打开浏览器输入http://NAS_IP:9000,开始你的可视化Docker之旅吧。

💬 评论区
发表评论

暂无评论,来说两句吧