一个轻量级的 Docker 管理面板Portainer

一个轻量级的 Docker 管理面板。

支持用户分组和权限控制。

你可以给他一个账号,他只能管理自己分配的容器。

🚀 Portainer 部署步骤

1. 环境准备

  • 确保服务器已安装 DockerDocker Compose。bashdocker -v docker compose version

2. 创建 Compose 文件

在服务器上新建 portainer.yml

yaml

version: "3"
services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: always
    ports:
      - "9000:9000"   # Web 管理界面
      - "9443:9443"   # HTTPS 管理界面(可选)
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock   # 让 Portainer 管理宿主机 Docker
      - portainer_data:/data                       # 持久化数据

volumes:
  portainer_data:

3. 启动服务

bash

docker compose -f portainer.yml up -d

4. 初始化 Portainer

  • 打开浏览器访问:http://服务器IP:9000
  • 第一次登录会要求设置 管理员账号和密码
  • 选择 Local 环境,即管理本机 Docker。

👥 给第三人使用的方式

  • 在 Portainer 的 Users 菜单里创建新用户。
  • 可以分配不同的 Team / Role
    • Administrator:完全权限。
    • Standard User:只能管理自己创建的容器。
  • 这样第三人就能通过 Web 界面自由创建和管理自己的 Docker,不会影响你的容器。

⚠️ 注意事项

  • 安全性:不要直接把服务器 root 权限给别人,Portainer 的用户管理更安全。
  • 端口冲突:确保 9000/9443 没被其他服务占用。
  • 数据持久化:挂载 /data 卷,避免重启后配置丢失。

🚀 Portainer Team 权限方案

1. 创建用户

  • 登录 Portainer Web 界面(默认 http://服务器IP:9000)。
  • 在左侧菜单选择 Users → 点击 Add User
  • 设置用户名、密码,角色选择 Standard User(普通用户)。

2. 创建 Team

  • 在左侧菜单选择 Teams → 点击 Add Team
  • 给 Team 起一个名字,比如 Team-A
  • 把刚创建的用户加入这个 Team。

3. 创建 Endpoint Group

  • 在左侧菜单选择 Endpoints → 点击 Groups
  • 新建一个 Endpoint Group,比如 Group-A
  • 把本地 Docker 环境(Local)分配到这个 Group。

4. 分配权限

  • Access Control 里设置:
    • Administrator:你自己,拥有全部权限。
    • Standard User:只能管理自己 Team 下的容器。
  • Team-A 分配 Group-A 的访问权限。

5. 使用效果

  • 你作为管理员,可以看到所有容器、镜像、网络。
  • 第三人登录后,只能在自己的 Team 下创建和管理容器,不会影响你的容器。
  • 他可以:
    • 创建容器(docker run 等操作通过 Web 界面完成)。
    • 管理自己容器的启动、停止、删除。
    • 查看日志、进入控制台。

⚠️ 注意事项

  • 资源隔离:Portainer 的 Team 隔离是逻辑上的,不是硬件级别。如果第三人创建容器占满 CPU/内存,还是会影响整台服务器。
  • 安全性:不要给他 Administrator 权限,否则他能看到和操作你的容器。
  • 网络冲突:不同 Team 的容器仍然共享宿主机网络,端口冲突需要你提前规划。