PassNAT LogoPassNAT

Portainer容器管理面板部署指南,飞牛NAS用Docker搭建可视化面板,配内网穿透在外面也能管容器

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

项目介绍

Portainer 是一个开源的 Docker 可视化管理面板。装上之后,这台机器上所有的容器、镜像、数据卷、网络都摆在网页里:启动、停止、重建、看实时日志、看 CPU 和内存占用,点几下就完事,不用再连上去敲命令。

它还能直接看 Compose 项目(在 Portainer 里叫 Stacks)、在线改编排重新部署、给容器开一个网页终端。社区版功能完整,个人和家用 NAS 足够了。面板本身也只是一个容器,装它不用改动已经在跑的任何东西。

项目地址:点我跳转

部署安装

如果你需要在外网也能访问项目,建议配置内网穿透服务。推荐使用 帕斯内网穿透,先注册账号备用。详细的操作指南可以 点我查看,包含全平台上手攻略。

在飞牛 NAS 上用 Compose 部署

打开飞牛 NAS 的 Docker 应用,切到上面的 Compose 标签,点「新增项目」。项目名称填 portainer,路径选一个空目录,来源选「创建 docker-compose.yml」,把下面这段贴进去:

1services:
2 portainer:
3 image: portainer/portainer-ce:lts
4 container_name: portainer
5 command: --http-enabled
6 ports:
7 - "9000:9000"
8 volumes:
9 - /var/run/docker.sock:/var/run/docker.sock
10 - ./data:/data
11 restart: unless-stopped

编排里要认的有四处,从上往下:

image: portainer/portainer-ce:lts —— 官方镜像。lts 就是官方安装文档里给的写法,长期支持版,小版本更新会自己跟上,不用改编排

command: --http-enabled —— 让面板走普通的 http。官方文档的示例发布的是 9443 端口,走的是 https,但用的是它自己签的证书,浏览器打开会先弹一页「连接不是私密连接」的警告。加上这一行改用 9000 端口的 http,配合内网穿透用起来更顺;官方示例里还有一个 8000 端口,那是 Edge 代理用的,只管本机的话不用发布

ports: "9000:9000" —— 左边是宿主机端口,也就是浏览器要敲的那个;右边是容器内端口,别动。9000 被别的服务占了就改左边,比如 "9100:9000"

volumes: /var/run/docker.sock —— 把宿主机的 Docker 接口挂进容器,Portainer 靠它才看得见和管得了别的容器,这一行是这个项目的核心,不能省。下面的 ./data:/data 是它自己的配置和账号数据,放在项目目录里,容器重建也不会丢

首次访问:先去容器日志里拿一串 token

这一步和别的项目不太一样,先说清楚,不然容易卡住。

容器起来之后,用地址打开会看到「New Portainer installation」,要你建第一个管理员。除了用户名和密码(密码至少 12 位),下面还有一栏 Setup token。这一栏不填,「Create user」按钮一直是灰的 —— 页面上同时挂着一句密码长度的提示,很容易以为是密码不够长,其实是 token 没填。

token 在容器的运行日志里。在飞牛上这么看:打开 Docker 应用,切到「容器」,在搜索框里搜 portainer,点这一行最右边的三个点,选「运行日志」。日志里有一行 setup_token=,后面那串就是,复制下来贴进去即可。

⚠ 还有一个 5 分钟的时间限制:容器启动之后 5 分钟内没有把管理员建好,Portainer 会把初始化入口锁上,页面变成一句超时提示。这是它防止别人抢先占用的机制。锁上了也不要紧,把容器重启一下就会重新开始计时,日志里也会打出一串新的 setup_token(每次启动都会换一串,用最新的那串)。

所以推荐的顺序是:容器起来 → 先去日志里把 token 复制好 → 再配内网穿透拿到公网地址 → 用公网地址打开,一次把管理员建完。

建完管理员会有一页 Set up Edge Compute,用不到的话点 Skip 跳过,然后在环境列表里点 local 进去,就是这台机器的总览了。

注意事项

确保 9000 端口未被占用,如有冲突可修改宿主机端口号

挂了 docker.sock 就等于把这台机器上 Docker 的完整控制权交给了这个面板,所以管理员密码要设长一点,也别把面板地址随手发给别人

配置和账号数据存在项目目录的 data 文件夹里,不会因容器重启而丢失

面板里能看到这台机器上所有的容器,包括不是用 Portainer 建的那些,停止和删除都是真的会生效,操作前先看清楚是哪一个

日常怎么用

进去之后左边侧栏几个常用的:Dashboard 是总览,多少个容器在跑、多少镜像、占了多少空间一眼看完;Containers 是容器列表,右上角有搜索框,容器多的时候搜一下就定位到了;点进某个容器,Logs 看实时日志,Stats 看 CPU 和内存曲线,Console 直接开一个终端;Stacks 是 Compose 项目,编排可以在线改了重新部署。

配合内网穿透之后,人不在家也能打开这一页,看看哪个容器挂了、顺手重启一下。

本篇教程结束