Portainer实战:在极空间集中管理Docker容器,并支持远程访问
前言
Portainer 到底有没有必要装?其实主要看你平时怎么用 Docker。
如果一台服务器上只有一两个容器,偶尔执行一下 docker ps、docker logs,命令行已经足够,专门再部署一个管理面板意义不大。但当容器慢慢增加以后,情况就会发生变化:哪些服务正在运行、哪个容器占用了什么端口、某个服务为什么退出、卷挂载到了哪里、镜像还有哪些版本,这些信息虽然都可以通过命令查到,但每天反复输入和确认并不一定是最高效的方式。
Portainer 的作用就在这里。
它并不是另一套容器技术,底层依然管理 Docker,只是把很多原本需要通过 CLI 完成的操作整理到了一个 Web 页面里。进入控制台以后,可以直接看到本机 Docker 环境中的容器、镜像、网络和存储卷,容器的启动、停止、重启以及状态查看也能直接完成。命令行依然可以继续使用,只是日常管理时多了一个更直观的入口。
这次我把 Portainer 部署在极空间上。
极空间本身已经具备 Docker 环境,所以并不需要额外准备一台服务器。部署时通过 Docker 启动 Portainer 容器,把 /var/run/docker.sock 挂载进去,让 Portainer 能够读取和管理宿主机上的 Docker;再把管理页面映射到 9000 端口。完成以后,在浏览器中访问 http://极空间IP:9000,初始化管理员账号,就能看到本机 Docker 的整体情况。
这个界面真正好用的地方,是查看信息的速度。
比如某个服务出了问题,进入容器详情页就可以看状态和相关信息;需要临时停掉一个应用,不必先确认容器名称再输入命令;管理的容器多起来以后,也不用依赖自己记住每一个端口和服务名称。对于刚开始接触 Docker 的用户,这种可视化方式也更容易理解“容器、镜像、网络、卷”之间到底是什么关系。
不过 Portainer 本质上是一个管理后台,所以它和普通网页服务还有一点不同:这个入口拥有控制 Docker 容器的能力,能在局域网里管理当然很方便,但一旦准备从外部网络访问,就不能只考虑“能不能打开”,还应该一起考虑账号和访问安全。
本文后半部分使用 cpolar 给 Portainer 的 9000 端口建立远程访问入口,并进一步配置固定二级子域名。这样极空间依然放在家里,Docker 服务也不需要迁移,外出时可以通过浏览器进入自己的 Portainer 控制台。
所以这篇文章的重点不是“用图形界面代替命令行”,而是给现有 Docker 环境增加一个集中管理入口。平时熟悉的命令依然保留,高频的查看、启停和状态管理则交给 Portainer,怎么用更快就选哪一种。对于已经在极空间上运行多个 Docker 服务的人,这种组合会比单独强调某一种管理方式更实用。

1.在极空间部署Portainer
1.1ssh远程连接到极空间
- 开启【SSH 服务】
- 使用终端(Windows PowerShell / Mac Terminal)登录:
ssh root@IP
没有ssh的小伙伴可以参考cpolar官网这篇文章:《极空间别再吃灰了!开启SSH,秒变全能服务器!》

1.2验证docker是否开启
使用命令:
docker -v
systemctl status -v
没有docker的小伙伴可以参考cpola官网这篇文章:《极空间开箱实录:从拆箱到远程访问保姆级教程,30分钟上手!》

1.3安装Portainer
docker命令安装:
docker run -d \
-p 9000:9000 \
--name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer
–restart=always 表示和 Docker 容器一样,当 Docker 重启了 Portainer 也重启,当 Docker 关闭了,Portainer 也关闭了。实时同步上。

在浏览器中输入 http://极空间IP:9000 就能看到登录界面:

1.4 简单使用Portainer
进来先注册用户密码:

注册完要重启容器:

输入重启命令:
docker stop portainer
docker start portainer
重启后,再次输入账户密码,启动成功:

再次输入账户密码,即登录成功:

选择local选项卡后本地docker详细信息展示:


在这里,我们就可以操控我们本地的服务啦~

操控它的启停状态等,是不是很方便~

点击这里,还能详细看它的状态:



在企业或家庭环境中,我们常常将Portainer 部署在内网服务器或NAS上,用于集中管理Docker容器。然而,一旦离开本地网络——比如在家办公、出差途中,就无法直接访问这个强大的可视化运维界面。
传统的远程方案(如公网IP、端口映射、VPN)往往配置复杂、存在安全风险,或受限于网络环境。而cpolar作为一款轻量级内网穿透工具,恰好能优雅地解决这一痛点:
无需公网IP、无需改路由器、无需暴露整个服务器,只需一条命令,就能将Portainer的Web界面通过加密 HTTPS 隧道安全暴露到公网。
从此,无论你在咖啡馆、高铁还是家中,只要打开浏览器,输入cpolar提供的专属链接,即可像在局域网一样,实时管理你的容器、查看日志、部署服务——真正实现 “随时随地,掌控你的Docker”
本文将继续演示如何用cpolar快速打通内外网,让Portainer成为你口袋里的运维控制台。
2.安装cpolar
cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。
❤️以下是安装cpolar步骤:
使用一键脚本安装命令:
sudo curl https://get.cpolar.sh | sh

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

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

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

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

访问成功。

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

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

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

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

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

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

这样我们就可以随时随地管理我们docker容器啦!
总结
Portainer 更适合被理解成 Docker 的一个管理入口,而不是 Docker CLI 的替代品。需要批量查看容器状态、确认镜像、网络和存储卷时,Web 界面更加直观;遇到复杂排查、脚本化操作或者需要精确控制参数时,命令行依然有自己的优势,两种方式完全可以同时保留。
部署到极空间以后,Portainer 直接管理本机已有的 Docker 环境,不需要重新迁移原来的容器。再通过 cpolar 给 9000 端口提供远程访问入口,人在其他网络下也能进入这套管理界面;如果准备长期使用,固定二级子域名会比临时地址更便于保存。
需要特别注意的是,Portainer 和普通内容页面不同,它具备容器管理权限,因此远程开放以后,管理员密码和访问入口的保护不能省。对于只跑一两个容器的设备,Portainer 未必是必需品;但如果极空间里已经运行了多个 Docker 服务,希望把日常查看和管理集中起来,它确实能让整个环境清楚不少。

更多推荐
所有评论(0)