前言
打开 Portainer 以后,Docker 里很多原本需要分别敲命令完成的操作,会直接出现在同一个页面里。
哪些容器正在运行、映射了什么端口,可以从列表中直接查看;某个服务启动失败,不必先输入 docker logs,点进容器就能检查日志;镜像、数据卷、网络以及 Stack 也都有对应的管理入口。它并没有改变 Docker 的底层运行方式,只是在 Docker Engine 之上增加了一套可视化管理界面。
本文会在已经开启 Docker 和 SSH 的飞牛 NAS 上部署 Portainer CE,创建持久化数据卷,并实际体验容器状态、日志、镜像和数据卷等常用功能。对于刚开始管理多容器环境的人来说,这些高频操作可视化之后,排查和维护会直观很多。
本地管理确认正常后,再使用 cpolar为 Portainer 增加外部访问入口,让人在其他网络中也可以进入这套容器管理后台。不过 Portainer 拥有很高的 Docker 管理权限,因此远程访问这一部分,安全性比"能不能打开页面"本身更值得注意。

1.什么是Portainer CE?
Portainer CE(Community Edition) 是一款免费、开源、轻量级的容器管理平台,专为简化Docker、Docker Swarm、Kubernetes和边缘计算环境 的可视化操作而设计。它的核心目标是:让容器管理变得像使用手机App一样直观、简单、高效。
核心功能亮点:
| 功能 | 说明 |
|---|---|
| ✅ 可视化容器管理 | 查看、启动、停止、重启、删除容器,实时查看日志、资源占用(CPU/内存) |
| ✅ 镜像 & 卷 & 网络管理 | 一键拉取镜像、清理无用镜像、管理数据卷和自定义网络 |
| ✅ 应用模板部署 | 内置常用服务模板(如 Nginx、MySQL、Redis),点一下就能部署 |
| ✅ Stack(Compose)支持 | 可直接编辑和部署 docker-compose.yml 文件,支持 Git 集成 |
| ✅ 多端点管理 | 一个 Portainer 实例可同时管理本地 + 远程 Docker 主机、Swarm 集群甚至边缘设备 |
| ✅ 用户与权限控制 | 支持多用户、团队、角色权限(CE 版基础权限,商业版更强大) |
| ✅ 轻量 & 跨平台 | 单个容器即可运行,支持 Linux、Windows、macOS、树莓派、NAS 等 |
Portainer CE vs 商业版:
| 特性 | CE(社区版) | BE(商业版) |
|---|---|---|
| 💰 价格 | 完全免费 + 开源(MIT 许可) | 付费(提供企业支持) |
| 👥 用户管理 | 基础账号 + 团队 | 高级 RBAC、LDAP/AD 集成 |
| 🔒 安全审计 | 基础操作记录 | 会话录制、合规报告 |
| ☁️ Kubernetes | 基础支持 | 深度集成、Helm 管理、策略控制 |
| 📦 高可用 | 单实例 | 多节点 HA 部署 |
对于个人开发者、小团队、学习或边缘场景,CE 版已完全够用。
典型使用场景:
- 开发者:本地快速调试容器,不用记复杂命令
- 运维新手:告别"盲操"Docker,可视化降低出错率
- NAS 用户(如群晖、TrueNAS):通过 Docker 安装 Portainer,统一管理所有容器
- 教育/演示:教学生 Docker 时,图形界面更直观
- 边缘设备管理:通过 Edge Agent 远程管控树莓派、工控机上的容器
总结:
Portainer CE不是一个"替代Docker的工具",而是Docker的"最佳搭档"。
它不改变底层技术,只是把复杂的命令行操作,变成你熟悉的操作逻辑------点击、拖拽、确认。
正如它的口号所说:"Simple management for your container environments."
如果你觉得docker命令太枯燥、容易出错,或者想让非技术人员也能安全地操作容器,Portainer CE绝对值得你花5分钟试试。
2.安装前提条件
2.1ssh远程连接到飞牛
- 开启【SSH 服务】
- 使用终端(Windows PowerShell / Mac Terminal)登录:
在设置--->SSH中开启SSH服务:



2.2验证docker是否开启
使用命令:
shell
docker -v
systemctl status -v
也可以直接在飞牛主页查看(其他机器也是这样的哦~)

3.安装Portainer CE
拉取Portainer镜像:
- 作用:从Docker Hub下载最新版的Portainer社区版镜像。
- portainer/portainer-ce是官方镜像名称。
- :latest 表示拉取最新版本(也可以指定具体版本,如 :2.21.0)。
shell
docker pull portainer/portainer-ce:latest

创建持久化数据卷:
- 作用:创建一个名为 portainer_data 的 Docker 卷,用于持久化存储 Portainer 的配置、用户数据、设置等。
- 这样即使容器被删除或重建,配置也不会丢失。
shell
docker volume create portainer_data

启动Portainer容器:
shell
docker run -d \
-p 8001:8000 \
-p 9000:9000 \
--name=portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest

查看portainer-ce容器状态:
shell
docker ps
检查portainer-ce容器日志:
shell
docker logs portainer

部署完成后,在浏览器中输入 http://飞牛IP:9000 就能看到Portainer CE的界面:

4.关于Portainer CE的配置与使用
4.1 初始化设置
第一步先注册用户,输入我们能记住的密码:

注册完用户以后进入portainer-ce首页:

4.2 使用Portainer CE
容器列表
安装如图所示点击,我们可以查看到当前所有镜像:
- 可以查当前状态,端口等基础信息

继续点击如图所示:
- 查看容器日志


继续点击如图所示:
- 查看容器日志


继续点击如图所示:
- 查看容器详细信息


镜像
查看当前镜像列表:

上传新的镜像:


管理数据卷

添加数据卷:


新建账户

修改原有账户密码:


还有更多信息等你们去解锁~!

Portainer CE作为一款轻量级、开源的Docker可视化管理工具,极大简化了容器、镜像、网络和数据卷的操作;而将其与cpolar 结合,则能突破内网限制,实现安全、稳定的远程访问------无需公网IP或复杂端口映射,只需一条cpolar隧道,即可随时随地通过HTTPS安全连接到本地Portainer管理界面,真正让边缘设备、家庭服务器或开发环境中的容器管理"触手可及",突出cpolar在内网穿透领域的便捷性、安全性和零配置优势。
5.安装cpolar实现随时随地开发
5.1 什么是cpolar?
cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。
5.2 部署cpolar
cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。
❤️以下是安装cpolar步骤:
使用一键脚本安装命令:
shell
sudo curl https://get.cpolar.sh | sh

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)
shell
sudo systemctl status cpolar

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:
打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

6.配置公网地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理------创建隧道:
- 隧道名称:可自定义,本例使用了:Portainer-CE,注意不要与已有的隧道名称重复
- 协议:http
- 本地地址:9000
- 域名类型:随机域名
- 地区:选择China Top

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

访问成功。

7.保留固定公网地址
使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是Portainer-CE,大家可以自定义。填写备注信息,点击保留。

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理------隧道列表,找到所要配置的隧道,点击右侧的编辑。

修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
- 地区: China Top
点击更新

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

总结
Portainer CE 最适合承担的角色,并不是替代 Docker,而是把 Docker 已经提供的很多管理能力重新整理成一个更容易查看和操作的界面。
容器启动失败时可以直接翻日志,想确认端口和运行状态不用先执行 docker ps,镜像、网络和数据卷也不需要在多条命令之间来回切换。尤其是 NAS 上运行的容器越来越多以后,这种集中管理方式会比单纯依靠命令行更方便日常维护。
但可视化并不意味着 Docker 的基础概念可以完全跳过。端口映射、数据持久化、网络、镜像版本这些问题依然存在,只是操作入口从终端换到了浏览器。真正遇到复杂故障时,命令行仍然是很重要的排查工具。
如果再通过 cpolar增加远程访问入口,还需要把 Portainer 当成一个高权限管理后台来保护,而不是普通网页。优先使用 HTTPS 管理端口、设置强管理员密码,并避免把不必要的 Docker 或 NAS 服务同时开放出去。
对于个人服务器、NAS 和 HomeLab 来说,Portainer CE 真正省下来的不是"学习 Docker 的时间",而是以后每次管理容器时那些重复敲命令、找日志和确认状态的时间。