跳转到内容

Portainer 完全指南 2026|Docker 可视化管理工具从入门到精通

Portainer 可视化管理

💡 命令行虽好,但可视化更香。 Portainer 是最流行的 Docker 可视化管理工具,让你通过 Web 界面轻松管理容器、镜像、网络、数据卷和堆栈。无论是个人开发者还是企业团队,Portainer 都能大幅提升 Docker 运维效率。

本文将带你系统掌握:

  • ✅ Portainer 介绍与版本选择
  • ✅ Portainer CE 安装部署(Docker & Swarm)
  • ✅ 容器管理:创建、启停、日志、终端
  • ✅ 镜像管理:拉取、构建、推送
  • ✅ 数据卷与网络管理
  • ✅ Compose 堆栈部署
  • ✅ 用户权限与团队管理
  • ✅ 模板与应用市场
  • ✅ 监控与告警
  • ✅ 生产环境最佳实践

一、Portainer 简介

1.1 什么是 Portainer

Portainer 是一个轻量级的 Docker 管理 UI,提供:

  • 可视化操作:通过 Web 界面管理 Docker,无需记忆命令
  • 功能全面:容器、镜像、网络、数据卷、堆栈一站式管理
  • 多环境支持:支持 Docker Standalone、Swarm、Kubernetes
  • 权限管理:多用户、角色、团队,适合企业使用
  • 开源免费:社区版完全免费,功能足够大多数场景

1.2 版本对比

特性Portainer CE(社区版)Portainer BE(商业版)
价格免费付费(按节点计费)
核心管理功能
用户/角色管理基础高级(SSO、LDAP)
多集群管理有限无限
注册表管理基础高级
备份恢复手动自动
支持社区官方技术支持

💡 个人和小团队使用 CE 版完全够用。

1.3 架构

┌─────────────────────────────────────┐
│           Portainer UI              │
│  (用户通过浏览器访问,端口 9443)    │
└──────────────┬──────────────────────┘

┌──────────────▼──────────────────────┐
│       Portainer Server              │
│  (API、业务逻辑、数据库)           │
└──────────────┬──────────────────────┘

┌──────────────▼──────────────────────┐
│    Docker API / Docker Socket       │
│  (/var/run/docker.sock)            │
└─────────────────────────────────────┘

Portainer 本身也是一个容器,通过挂载 docker.sock 与 Docker 引擎通信。


二、安装部署

2.1 Docker Standalone 安装

创建数据卷:

bash
docker volume create portainer_data

启动 Portainer:

bash
docker run -d \
  --name portainer \
  --restart always \
  -p 9000:9000 \
  -p 9443:9443 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:latest

参数说明:

  • --restart always:开机自启
  • -p 9000:9000:HTTP 端口(可选)
  • -p 9443:9443:HTTPS 端口(推荐)
  • -v /var/run/docker.sock:/var/run/docker.sock:挂载 Docker Socket
  • -v portainer_data:/data:数据持久化

2.2 Docker Compose 安装

创建 docker-compose.yml

yaml
version: '3.8'

services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: always
    ports:
      - "9000:9000"
      - "9443:9443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
    environment:
      - TZ=Asia/Shanghai

volumes:
  portainer_data:

启动:

bash
docker compose up -d

2.3 Docker Swarm 安装

bash
docker service create \
  --name portainer \
  --publish 9443:9443 \
  --replicas=1 \
  --constraint 'node.role == manager' \
  --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \
  --mount type=volume,src=portainer_data,dst=/data \
  portainer/portainer-ce:latest

2.4 初始配置

访问 Portainer:

打开浏览器访问 https://你的IP:9443

首次登录需要:

  1. 设置管理员账号和密码
  2. 选择要管理的环境(本地 Docker 环境会自动检测)
  3. 点击 "Connect" 连接

⚠️ 首次设置密码要在 5 分钟内完成,否则容器会自动退出防止未授权访问。


三、仪表盘总览

登录 Portainer 后,首先看到的是仪表盘:

主要信息:

  • 环境信息:Docker 版本、操作系统、CPU、内存
  • 资源统计:容器数量(运行/停止)、镜像数量、数据卷数量、网络数量
  • 快速操作:快速进入各管理模块
  • 使用情况:CPU、内存使用率图表

四、容器管理

4.1 容器列表

左侧菜单选择 "Containers",可以看到所有容器:

列表信息:

  • 容器名称
  • 镜像
  • 状态(运行/停止)
  • 暴露端口
  • 快速操作按钮

筛选与搜索:

  • 按状态筛选(运行中、已停止、全部)
  • 按名称搜索

4.2 快速操作

对每个容器,可以快速执行:

  • Logs:查看日志
  • Inspect:查看详细信息
  • Stats:资源使用统计
  • Console:进入容器终端
  • Restart:重启
  • Stop:停止
  • Start:启动
  • Kill:强制停止
  • Remove:删除

4.3 创建容器

点击 "Add container" 按钮:

基本配置:

  • Name:容器名称
  • Image:镜像名称(如 nginx:alpine
  • Always pull the image:是否每次拉取最新镜像
  • Publish all exposed ports:自动映射所有暴露端口

高级配置(Advanced container settings):

分类配置项
Command & logging启动命令、工作目录、用户、日志驱动
Volumes数据卷挂载、Bind Mount
Network网络模式、端口映射、主机名、DNS
Env环境变量
Labels标签
Restart policy重启策略(no/always/on-failure/unless-stopped)
ResourcesCPU、内存限制
Capabilities内核权限

4.4 容器日志

点击容器名称 → "Logs" 标签:

日志功能:

  • 实时查看日志
  • 按时间筛选
  • 搜索关键字
  • 下载日志
  • 自动刷新

4.5 进入容器终端

点击容器名称 → "Console" 标签:

连接终端:

  • 选择命令(/bin/bash/bin/sh 等)
  • 点击 "Connect" 连接
  • 像使用 SSH 一样操作容器

五、镜像管理

5.1 镜像列表

左侧菜单选择 "Images":

显示信息:

  • 镜像名称与标签
  • 镜像 ID
  • 创建时间
  • 镜像大小
  • 使用状态(是否有容器在使用)

5.2 拉取镜像

方法一:从镜像列表页拉取

  1. 点击 "Pull image"
  2. 输入镜像名称(如 nginx:alpine
  3. 选择注册表(默认 Docker Hub)
  4. 点击 "Pull the image"

方法二:创建容器时自动拉取 创建容器时输入镜像名,Portainer 会自动拉取。

5.3 构建镜像

从 Dockerfile 构建:

  1. 点击 "Build a new image"
  2. 输入镜像名称
  3. 选择构建方式:
    • Upload:上传 Dockerfile 文件
    • URL:从 Git 仓库构建
    • Web editor:在线编辑 Dockerfile
  4. 点击 "Build the image"

5.4 推送镜像

  1. 点击镜像名称
  2. 点击 "Push to registry"
  3. 选择注册表
  4. 输入标签
  5. 点击 "Push"

六、数据卷管理

6.1 数据卷列表

左侧菜单选择 "Volumes":

显示信息:

  • 卷名称
  • 驱动类型
  • 挂载状态
  • 创建时间

6.2 创建数据卷

  1. 点击 "Add volume"
  2. 输入卷名称
  3. 选择驱动(默认 local)
  4. 配置驱动选项(可选)
  5. 添加标签(可选)
  6. 点击 "Create the volume"

6.3 数据卷操作

  • Browse:浏览数据卷内容
  • Remove:删除数据卷
  • Remove unused:批量删除未使用的数据卷

七、网络管理

7.1 网络列表

左侧菜单选择 "Networks":

默认网络:

  • bridge:默认桥接网络
  • host:主机网络
  • none:无网络

7.2 创建网络

  1. 点击 "Add network"
  2. 输入网络名称
  3. 选择驱动:bridgeoverlaymacvlan
  4. 配置子网、网关(可选)
  5. 点击 "Create the network"

7.3 网络操作

  • 查看网络详情
  • 查看连接到该网络的容器
  • 容器加入/移除网络
  • 删除网络

八、Stacks 堆栈(Compose)

8.1 什么是 Stack

Stack 是 Portainer 对 Docker Compose 的封装,可以通过 Web 界面管理多容器应用。

8.2 创建 Stack

方法一:Web Editor(推荐)

  1. 左侧菜单选择 "Stacks"
  2. 点击 "Add stack"
  3. 选择 "Web editor"
  4. 输入 Stack 名称
  5. 在编辑器中粘贴 docker-compose.yml 内容
  6. 点击 "Deploy the stack"

方法二:Upload 上传本地的 docker-compose.yml 文件

方法三:Git Repository 从 Git 仓库拉取 Compose 文件部署

8.3 示例:部署 WordPress

yaml
version: '3.8'

services:
  db:
    image: mysql:8.0
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: wordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8080:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wp_data:/var/www/html

volumes:
  db_data:
  wp_data:

8.4 Stack 管理

Stack 详情页:

  • 查看所有服务
  • 查看容器状态
  • 查看日志
  • 查看 Compose 文件
  • 更新 Stack(Editor 中修改后重新部署)
  • 删除 Stack

九、应用模板与 App Templates

9.1 使用内置模板

Portainer 内置了很多常用应用模板,一键部署:

  1. 左侧菜单选择 "App Templates"
  2. 浏览或搜索想要的应用
  3. 点击应用
  4. 配置参数(名称、端口、环境变量等)
  5. 点击 "Deploy the stack"

常用模板:

  • Nginx
  • WordPress
  • MySQL
  • Redis
  • Nextcloud
  • Ghost
  • Jenkins
  • GitLab

9.2 自定义模板

你可以添加自己的模板:

  1. 进入 "Settings" → "App Templates"
  2. 输入自定义模板的 URL(JSON 格式)
  3. 点击 "Save settings"

十、用户与权限管理

10.1 用户管理

添加用户:

  1. 左侧菜单选择 "Users"
  2. 点击 "Add user"
  3. 输入用户名和密码
  4. 选择角色:
    • Administrator:管理员,全部权限
    • Standard user:普通用户,受环境权限限制
  5. 点击 "Create user"

10.2 团队管理

创建团队:

  1. 左侧菜单选择 "Teams"
  2. 点击 "Add team"
  3. 输入团队名称
  4. 添加团队成员

10.3 环境权限管理

  1. 进入 "Environments"
  2. 点击环境名称
  3. 选择 "Access management"
  4. 添加用户或团队
  5. 设置角色(管理员/操作员/只读用户)

十一、多环境管理

11.1 添加远程 Docker 环境

Portainer 可以管理多台 Docker 主机:

方式一:Docker Socket 代理(推荐)

在远程主机上运行 Portainer Agent:

bash
docker run -d \
  --name portainer_agent \
  --restart always \
  -p 9001:9001 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/lib/docker/volumes:/var/lib/docker/volumes \
  portainer/agent:latest

然后在 Portainer 中添加环境:

  1. "Environments" → "Add environment"
  2. 选择 "Docker" → "Agent"
  3. 输入名称和地址(远程IP:9001
  4. 点击 "Add environment"

方式二:Docker API 开启远程 Docker API(不推荐,安全性较低)

11.2 环境分组

可以将多个环境分组管理:

  1. "Environments" → "Groups"
  2. 点击 "Add group"
  3. 添加环境到组中

十二、注册表管理

12.1 添加私有镜像仓库

  1. 左侧菜单选择 "Registries"
  2. 点击 "Add registry"
  3. 选择注册表类型:
    • Docker Hub
    • Azure ACR
    • GitLab
    • Custom registry
  4. 填写地址和认证信息
  5. 点击 "Add registry"

12.2 使用私有镜像

添加注册表后,拉取镜像时可以选择对应的注册表。


十三、监控与告警

13.1 容器资源监控

查看单个容器:

  1. 进入容器详情
  2. 点击 "Stats" 标签
  3. 查看 CPU、内存、网络、磁盘 I/O

查看环境总览: 仪表盘显示整体资源使用情况

13.2 日志查看

  • 容器日志
  • 事件日志(Events)
  • Portainer 自身日志

13.3 事件日志

左侧菜单选择 "Events":

  • 记录所有操作事件
  • 按类型、时间筛选
  • 操作审计

十四、Portainer 配置与维护

14.1 基本设置

"Settings" → "Settings":

  • Logo:自定义 Logo
  • Security:安全设置(密码最小长度等)
  • App Templates:应用模板源
  • Host management features:宿主机管理功能开关

14.2 备份与恢复

备份:

  1. "Settings" → "Backup"
  2. 点击 "Download backup"
  3. 输入密码加密备份文件
  4. 下载备份 JSON 文件

恢复:

  1. 重新安装 Portainer
  2. 首次设置时选择 "Restore from backup"
  3. 上传备份文件,输入密码
  4. 恢复完成

14.3 升级 Portainer

bash
# 1. 停止并删除旧容器
docker stop portainer
docker rm portainer

# 2. 拉取最新镜像
docker pull portainer/portainer-ce:latest

# 3. 重新启动(数据卷不要删)
docker run -d \
  --name portainer \
  --restart always \
  -p 9000:9000 \
  -p 9443:9443 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:latest

💡 数据卷 portainer_data 不要删,升级后数据都还在。


十五、生产环境最佳实践

15.1 安全建议

  1. 使用 HTTPS:用 9443 端口,避免明文传输
  2. 强密码:管理员使用强密码
  3. 限制访问:不要直接暴露到公网,通过反向代理+防火墙
  4. 定期备份:定期备份 Portainer 配置
  5. 最小权限:普通用户只给必要权限
  6. 禁用宿主机管理:不需要就关掉 Host management features

15.2 Nginx 反向代理配置

nginx
server {
    listen 80;
    server_name portainer.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name portainer.example.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass https://127.0.0.1:9443;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket 支持
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

15.3 性能优化

  1. 定期清理:清理未使用的镜像、容器、数据卷
  2. 限制资源:给 Portainer 容器设置内存限制
  3. 本地部署:Portainer 和 Docker 在同一台机器上性能最好
  4. 合理日志:配置合适的日志策略,避免日志过大

15.4 常见问题

问题 1:Portainer 无法连接 Docker

  • 检查是否挂载了 docker.sock
  • 检查文件权限
  • 确保 Docker 服务在运行

问题 2:忘记管理员密码

  • 停止 Portainer
  • 删除数据卷(会丢失所有配置)
  • 或使用官方重置密码工具

问题 3:容器日志看不到中文

  • 检查容器的 locale 设置
  • 确保应用输出编码为 UTF-8

十六、常用操作速查

操作路径
查看容器Containers → 点击容器名
进入容器终端容器详情 → Console → Connect
查看日志容器详情 → Logs
创建容器Containers → Add container
部署 ComposeStacks → Add stack → Web editor
拉取镜像Images → Pull image
管理数据卷Volumes
添加用户Users → Add user
备份配置Settings → Backup
查看事件Events

十七、总结

Portainer 是 Docker 运维的利器:

  1. 降低门槛:可视化操作,不用记复杂命令
  2. 提升效率:一站式管理容器、镜像、网络、数据卷
  3. 团队协作:多用户、权限管理,适合团队使用
  4. 灵活扩展:支持多环境、Kubernetes、自定义模板
  5. 开源免费:CE 版功能足够大多数场景使用

🎯 从命令行转向可视化管理,用 Portainer 让 Docker 运维更轻松。


相关文章推荐: