前面部署的 Jellyfin、Immich、Vaultwarden 一堆容器,状态全靠 docker ps 一条条敲;想看哪个容器日志要拼命令,改个端口映射得先 stop 再 edit 再 up。Portainer 是 Docker 官方社区最活跃的可视化管理面板:容器、镜像、卷、网络、compose 栈一个界面看全,点几下就能启停、看日志、改配置。本文用雨云 KVM 云服务器把 Portainer 跑起来,统一管理那些自建服务。
为什么选 Portainer
命令行管 Docker 没问题,但容器多了之后「哪个对应哪个服务、挂在哪块盘、暴露哪个端口」全在脑子里。Portainer 把这些信息可视化:
- 一览无余:所有容器运行状态、占用、端口映射、挂载卷,一个列表看清;
- 零命令操作:启停、重启、看实时日志、进终端、改环境变量,点界面就行;
- Stack(栈):直接粘贴 docker-compose 部署多容器应用,和手敲命令等价但更直观;
- 多节点(进阶):装 Edge Agent 后能在一个面板管好几台机器的 Docker。
它不替代之前部署的应用,而是给它们一个「控制台」。前面 Jellyfin、Immich 这些容器,装好 Portainer 后都能在界面里看到、点开就能管。
服务器与部署
Portainer 自己就是个容器,雨云 KVM(官网入口)Debian 12 + Docker,下单优惠码填 admin01 五折,7 天无理由退款。没用过雨云的先看 选购与上手指南。
docker volume create portainer_data
docker run -d -p 9443:9443 --name portainer
--restart=unless-stopped
-v /var/run/docker.sock:/var/run/docker.sock
-v portainer_data:/data
portainer/portainer-ce:latest
两个关键点:
- 必须挂
/var/run/docker.sock:Portainer 通过 Docker 守护进程套接字管理本机容器,不挂就管不了; - 用 9443 而非 9000:新版默认走 HTTPS(9443),首次访问
https://服务器IP:9443设管理员密码。若坚持用 9000 明文端口,务必套反代 + HTTPS,别裸奔在公网。
Nginx 反代 9443、配 HTTPS 是最稳的正式用法;临时测试才直连 IP。
日常使用姿势
- 看日志:点容器 → Logs,实时滚动,排错不用
docker logs -f拼命令; - 改配置:容器 → Editor 直接改环境变量/端口,Apply 即重建;
- 部署新应用:Stacks → 粘贴 docker-compose,Deploy 一键起栈,和命令行
docker compose up等价; - 管理卷与网络:Volumes、Networks 页看清楚每个容器挂载了哪块盘,删容器前先确认数据卷没被误清。
踩坑记录
- 忘了挂 docker.sock:只挂了 data 卷、没挂 sock,Portainer 起来却一个容器都看不到。补上
-v /var/run/docker.sock:/var/run/docker.sock重跑即可。 - 9443 打不开:浏览器用 http 访问 9443 会被拒,必须用 https;部分环境要在防火墙放通 9443。
- 升级前没备份 data 卷:Portainer 的配置全在
portainer_data卷里,升级镜像前先备份这个卷,否则自定义设置会丢。 - 多节点 Agent 暴露公网:Edge Agent 的隧道端点若裸奔,等于把其他机器的 Docker 控制权交出去。多节点场景务必走内网或带认证的加密通道。
合规提醒
Portainer 拥有本机 Docker 的完整管理权限,等同于服务器 root 级操作能力。请设置强管理员密码、启用 HTTPS、限制访问来源 IP;多节点 Agent 不得暴露于不可信网络。依据《网络安全法》《数据安全法》,管理平台本身的访问权比单个应用更需最小权限与审计。
小结
容器一多,命令行就不够看了。Portainer 用 1 核 1G 的代价给所有 Docker 应用装上「仪表盘」:状态、日志、配置、栈一目了然,启停改参点几下完成。雨云 KVM 1 核 1G 起步足矣,优惠码 admin01 五折——把之前散落的 Jellyfin、Immich、Vaultwarden 收进一个面板,运维从「敲命令」变成「看一眼」。






