Skip to content
VDS · Docker 与容器

Portainer:通过浏览器管理容器

如何安装 Web 容器管理面板,它为什么方便,以及为什么不应在没有保护的情况下将其暴露到互联网。

更新于 2026年8月23日

Portainer 是 Docker 的 Web 界面:容器列表、日志、进入容器的控制台、卷、网络以及 Compose 堆栈。当您不想每次都 SSH 登录只为“看看什么崩了”时,它非常方便。

安装

docker volume create portainer_data
docker run -d \
  --name portainer \
  --restart unless-stopped \
  -p 127.0.0.1:9443:9443 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:2.21.4

端口绑定在本地接口上。您可以通过 SSH 隧道打开面板:

ssh -L 9443:127.0.0.1:9443 root@<machine-address>

然后在浏览器中打开 https://localhost:9443。证书是自签名的,所以浏览器会发出警告——通过隧道访问时这是正常的。

第一个管理员由最先打开面板的人创建。如果您把端口暴露到公网后就去喝茶了,管理员就不会是您。Portainer 会在启动几分钟后关闭注册,但您不应依赖这一点——请立即创建账户。

为什么这很危险以及该怎么做

面板挂载了 /var/run/docker.sock。访问这个套接字等同于拥有机器上的 root 权限:通过它可以启动一个挂载了宿主机 root 的容器。因此有以下规则:

  • 不要把端口暴露到公网。要么使用 SSH 隧道,要么使用带证书和双因素认证的 Web 服务器。
  • 管理员密码要设置得又长又唯一,不要与机器的 root 密码相同。
  • 给每个人分配单独的、权限受限的账户,而不是共用一个登录。
  • 如果您很少需要面板,就让容器保持停止状态,需要时再启动:docker start portainer。

它方便在哪里

  • 日志支持搜索和高亮——比在 80×24 的文本控制台里用 docker logs 更快。
  • 进入容器的控制台直接在浏览器中。
  • 堆栈——粘贴 compose.yaml 的内容,点击部署。适合一次性服务,但对于长期运行的服务,最好把文件保存在磁盘上并纳入版本控制:在面板中创建的堆栈在重装时很容易丢失。
  • 卷和镜像——您可以看到什么占用了多少空间;在排查空间不足时很有帮助。

不应该在它里面做什么

  • 把服务定义的唯一副本保存在里面。磁盘目录中的 compose.yaml 文件会比面板活得更久。
  • 在不了解卷会发生什么的情况下,用“重新创建”按钮更新容器。参见更新容器。
  • 把它当作监控的替代品。Portainer 显示的是当前状态,而不是历史记录,也不会发送告警——为此您需要 Uptime Kuma。

资源占用

容器大约使用 100 MB 内存,可在任何档位上运行。数据存储在 portainer_data 卷中:账户、设置、堆栈。请把它纳入您的备份,否则就要做好重新配置面板的准备。

常见错误

  • 忘记面板只管理这一台机器。 它也可以管理第二台机器,但那需要在上面安装代理,并在两者之间开放端口。
  • 给面板本身使用 latest 标签。 大版本更新会改变数据格式。请固定版本。
  • 通过清理删除“未使用”的卷。 Portainer 确实会警告您,但人们不看就点按钮。容器停止时,带数据库的卷看起来就像未使用——参见卷。