- Portainer 是一个基于 Web 的图形界面,可以集中管理 Docker、Kubernetes 和 Swarm,而无需完全依赖控制台。
- 它允许使用模板部署应用程序,并对 Compose 卷、网络和堆栈进行可视化管理。
- 可以通过直接使用 Docker 命令进行安装,也可以通过 YAML 配置文件进行安装,以获得更大的控制权。
如果你已经涉足自托管领域,无论是在树莓派、NAS 还是专用服务器上搭建家庭服务器,你都会知道Docker 是一个强大的工具。然而,不断地与终端“搏斗”可能会变得相当繁琐,尤其是在同时运行数十个容器时。这时,Portainer 就派上了用场。它是一个基于 Web 的图形界面,让你无需再输入无穷无尽的命令,只需点击几下即可轻松管理一切。
本质上,Portainer 扮演着统一控制面板的角色。它并非 Kubernetes 发行版,而是一款开源软件,用于集中管理现有基础设施。无论您使用免费的社区版 (CE) 还是付费的企业版,其目标都相同:让从 DevOps 专家到数字 DIY 爱好者的每个人都能更直观、更轻松地部署、配置和排查应用程序故障。
很多人会质疑,既然有了终端,图形用户界面(GUI)真的有必要吗?简而言之,对于日常使用来说,GUI 非常方便。Docker 是一种轻量级的虚拟化解决方案,它利用 Linux 内核隔离进程,而无需虚拟机的负担,而 Portainer 则让我们能够即时了解资源状况。您可以一目了然地看到哪些容器运行正常,哪些容器出现故障,以及它们消耗了多少 CPU 或内存,而无需运行复杂的检查命令。
它最强大的功能之一是管理Docker Compose堆栈,允许您使用单个 YAML 文件启动多个互连的服务。它还简化了持久卷和虚拟网络的管理,防止您在移除容器时意外删除关键数据。对于初学者来说,它是一款完美的工具,因为它允许您使用预定义的模板进行实验,并在几秒钟内部署常用服务。
在 NAS 服务器和家庭环境中安装
如果您使用的是 Synology、QNAP 或 Asustor 等品牌的 NAS,那就太好了。在这些设备上,Docker 通常以应用程序的形式提供,可以从其应用商店安装(例如,在 QNAP 上,它被称为Container Station)。安装好 Docker 引擎后,您就可以部署 Portainer 了。虽然有些 NAS 设备已经集成了 Portainer,但更常见的是通过 SSH 进行部署。
在这些环境中,要通过命令行安装它,通常使用一个命令。 docker run映射 Docker 套接字至关重要(/var/run/docker.sock)以便Portainer可以 与主机引擎通信某些系统(例如 Asustor)的一个重要细节是可能会出现权限错误;在这种情况下,请运行 sudo chmod 666 /var/run/docker.sock 这通常可以通过允许容器不受限制地访问套接字来解决问题。
使用 Docker Compose 进行高级部署
对于那些寻求更专业、更易于维护的设置的人来说,理想的解决方案是使用文件 compose.yaml与旧版指南不同,现在无需再包含版本号,因为新规范已忽略了版本号。强烈建议您这样做。 将图像固定到特定版本 (例如,2.40.0)而不是使用标签 latest这样可以防止自动更新破坏您的设置。
稳健配置的一个例子包括使用 名为 portainer_data 的卷这至关重要,因为整个应用程序状态(用户、端点和配置)都位于该文件夹中。 /data 容器的挂载点。如果您使用临时绑定的挂载点并将其删除,则会丢失整个实例。此外,将 Docker 套接字挂载到容器内也是一种良好的实践。 只读模式(:ro)因为 Portainer 通过 API 控制一切,无需直接写入主机系统套接字。
入门和安全设置
容器启动后,通常可以通过在浏览器中输入服务器的 IP 地址,经由 9443 端口(HTTPS)或 9000 端口(HTTP)访问它。首次登录时,系统会要求您创建一个管理员用户并设置强密码。请注意,此初始设置过程有5 分钟的超时时间;如果超过此时间,您需要重启容器才能再次尝试登录。
在生产环境中,将 Portainer 直接暴露在互联网上存在风险。最好将其置于……之后。 反向代理,例如 Traefik这样,你就可以 将 Docker、Traefik 和 Portainer 集成到一个完整的技术栈中。 管理 Let's Encrypt TLS 证书并将流量重定向到 Portainer 的内部端口 9000,允许您通过专业域名(例如 .example.com)访问它。 portainer.tuweb.com无需在防火墙中打开奇怪的端口。
容器和远程端点管理
在控制面板中,“本地”环境是所有操作发生的地方。在这里,您可以从 Docker Hub 拉取镜像、从头开始创建容器,或者管理网络和卷。其中最实用的功能之一是访问容器控制台,它允许您在不离开浏览器的情况下进入任何正在运行的应用程序的终端。
但 Portainer 并不局限于单台服务器。借助Edge Agent,您可以将多个远程节点连接到单个中央 Portainer 实例。该代理是一个轻量级容器,您可以将其安装在其他服务器上,它会打开一条通往主服务器的出站隧道,从而使您能够管理 Docker Swarm 和 Portainer Edge,并从单一控制点控制 Swarm 或 Kubernetes 集群,而无需考虑机器的物理位置。
Portainer 彻底改变了 Docker 使用体验,将繁琐的终端管理转变为可视化生态系统,让镜像、堆栈和卷的控制变得直观易用。无论是通过快速命令安装,还是使用 Compose 和 Traefik 搭建专业环境,这款工具都能确保高效、可扩展且最重要的是更易于上手的容器管理,让所有用户都能轻松使用。





