Portainer 完全指南 2026|Docker 可視化管理工具從入門到精通

💡 命令行雖好,但可視化更香。 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 安裝
創建數據卷:
docker volume create portainer_data啟動 Portainer:
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:
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:啟動:
docker compose up -d2.3 Docker Swarm 安裝
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:latest2.4 初始配置
訪問 Portainer:
打開瀏覽器訪問 https://你的IP:9443
首次登錄需要:
- 設置管理員賬號和密碼
- 選擇要管理的環境(本地 Docker 環境會自動檢測)
- 點擊 "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) |
| Resources | CPU、內存限制 |
| Capabilities | 內核權限 |
4.4 容器日誌
點擊容器名稱 → "Logs" 標籤:
日誌功能:
- 實時查看日誌
- 按時間篩選
- 搜索關鍵字
- 下載日誌
- 自動刷新
4.5 進入容器終端
點擊容器名稱 → "Console" 標籤:
連接終端:
- 選擇命令(
/bin/bash、/bin/sh等) - 點擊 "Connect" 連接
- 像使用 SSH 一樣操作容器
五、鏡像管理
5.1 鏡像列表
左側菜單選擇 "Images":
顯示信息:
- 鏡像名稱與標籤
- 鏡像 ID
- 創建時間
- 鏡像大小
- 使用狀態(是否有容器在使用)
5.2 拉取鏡像
方法一:從鏡像列表頁拉取
- 點擊 "Pull image"
- 輸入鏡像名稱(如
nginx:alpine) - 選擇註冊表(默認 Docker Hub)
- 點擊 "Pull the image"
方法二:創建容器時自動拉取 創建容器時輸入鏡像名,Portainer 會自動拉取。
5.3 構建鏡像
從 Dockerfile 構建:
- 點擊 "Build a new image"
- 輸入鏡像名稱
- 選擇構建方式:
- Upload:上傳 Dockerfile 文件
- URL:從 Git 倉庫構建
- Web editor:在線編輯 Dockerfile
- 點擊 "Build the image"
5.4 推送鏡像
- 點擊鏡像名稱
- 點擊 "Push to registry"
- 選擇註冊表
- 輸入標籤
- 點擊 "Push"
六、數據卷管理
6.1 數據卷列表
左側菜單選擇 "Volumes":
顯示信息:
- 卷名稱
- 驅動類型
- 掛載狀態
- 創建時間
6.2 創建數據卷
- 點擊 "Add volume"
- 輸入卷名稱
- 選擇驅動(默認 local)
- 配置驅動選項(可選)
- 添加標籤(可選)
- 點擊 "Create the volume"
6.3 數據卷操作
- Browse:瀏覽數據卷內容
- Remove:刪除數據卷
- Remove unused:批量刪除未使用的數據卷
七、網絡管理
7.1 網絡列表
左側菜單選擇 "Networks":
默認網絡:
bridge:默認橋接網絡host:主機網絡none:無網絡
7.2 創建網絡
- 點擊 "Add network"
- 輸入網絡名稱
- 選擇驅動:
bridge、overlay、macvlan等 - 配置子網、網關(可選)
- 點擊 "Create the network"
7.3 網絡操作
- 查看網絡詳情
- 查看連接到該網絡的容器
- 容器加入/移除網絡
- 刪除網絡
八、Stacks 堆棧(Compose)
8.1 什麼是 Stack
Stack 是 Portainer 對 Docker Compose 的封裝,可以通過 Web 界面管理多容器應用。
8.2 創建 Stack
方法一:Web Editor(推薦)
- 左側菜單選擇 "Stacks"
- 點擊 "Add stack"
- 選擇 "Web editor"
- 輸入 Stack 名稱
- 在編輯器中粘貼 docker-compose.yml 內容
- 點擊 "Deploy the stack"
方法二:Upload 上傳本地的 docker-compose.yml 文件
方法三:Git Repository 從 Git 倉庫拉取 Compose 文件部署
8.3 示例:部署 WordPress
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 內置了很多常用應用模板,一鍵部署:
- 左側菜單選擇 "App Templates"
- 瀏覽或搜索想要的應用
- 點擊應用
- 配置參數(名稱、端口、環境變量等)
- 點擊 "Deploy the stack"
常用模板:
- Nginx
- WordPress
- MySQL
- Redis
- Nextcloud
- Ghost
- Jenkins
- GitLab
9.2 自定義模板
你可以添加自己的模板:
- 進入 "Settings" → "App Templates"
- 輸入自定義模板的 URL(JSON 格式)
- 點擊 "Save settings"
十、用戶與權限管理
10.1 用戶管理
添加用戶:
- 左側菜單選擇 "Users"
- 點擊 "Add user"
- 輸入用戶名和密碼
- 選擇角色:
- Administrator:管理員,全部權限
- Standard user:普通用戶,受環境權限限制
- 點擊 "Create user"
10.2 團隊管理
創建團隊:
- 左側菜單選擇 "Teams"
- 點擊 "Add team"
- 輸入團隊名稱
- 添加團隊成員
10.3 環境權限管理
- 進入 "Environments"
- 點擊環境名稱
- 選擇 "Access management"
- 添加用戶或團隊
- 設置角色(管理員/操作員/只讀用戶)
十一、多環境管理
11.1 添加遠程 Docker 環境
Portainer 可以管理多臺 Docker 主機:
方式一:Docker Socket 代理(推薦)
在遠程主機上運行 Portainer Agent:
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 中添加環境:
- "Environments" → "Add environment"
- 選擇 "Docker" → "Agent"
- 輸入名稱和地址(
遠程IP:9001) - 點擊 "Add environment"
方式二:Docker API 開啟遠程 Docker API(不推薦,安全性較低)
11.2 環境分組
可以將多個環境分組管理:
- "Environments" → "Groups"
- 點擊 "Add group"
- 添加環境到組中
十二、註冊表管理
12.1 添加私有鏡像倉庫
- 左側菜單選擇 "Registries"
- 點擊 "Add registry"
- 選擇註冊表類型:
- Docker Hub
- Azure ACR
- GitLab
- Custom registry
- 填寫地址和認證信息
- 點擊 "Add registry"
12.2 使用私有鏡像
添加註冊表後,拉取鏡像時可以選擇對應的註冊表。
十三、監控與告警
13.1 容器資源監控
查看單個容器:
- 進入容器詳情
- 點擊 "Stats" 標籤
- 查看 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 備份與恢復
備份:
- "Settings" → "Backup"
- 點擊 "Download backup"
- 輸入密碼加密備份文件
- 下載備份 JSON 文件
恢復:
- 重新安裝 Portainer
- 首次設置時選擇 "Restore from backup"
- 上傳備份文件,輸入密碼
- 恢復完成
14.3 升級 Portainer
# 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 安全建議
- 使用 HTTPS:用 9443 端口,避免明文傳輸
- 強密碼:管理員使用強密碼
- 限制訪問:不要直接暴露到公網,通過反向代理+防火牆
- 定期備份:定期備份 Portainer 配置
- 最小權限:普通用戶只給必要權限
- 禁用宿主機管理:不需要就關掉 Host management features
15.2 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 性能優化
- 定期清理:清理未使用的鏡像、容器、數據卷
- 限制資源:給 Portainer 容器設置內存限制
- 本地部署:Portainer 和 Docker 在同一臺機器上性能最好
- 合理日誌:配置合適的日誌策略,避免日誌過大
15.4 常見問題
問題 1:Portainer 無法連接 Docker
- 檢查是否掛載了 docker.sock
- 檢查文件權限
- 確保 Docker 服務在運行
問題 2:忘記管理員密碼
- 停止 Portainer
- 刪除數據卷(會丟失所有配置)
- 或使用官方重置密碼工具
問題 3:容器日誌看不到中文
- 檢查容器的 locale 設置
- 確保應用輸出編碼為 UTF-8
十六、常用操作速查
| 操作 | 路徑 |
|---|---|
| 查看容器 | Containers → 點擊容器名 |
| 進入容器終端 | 容器詳情 → Console → Connect |
| 查看日誌 | 容器詳情 → Logs |
| 創建容器 | Containers → Add container |
| 部署 Compose | Stacks → Add stack → Web editor |
| 拉取鏡像 | Images → Pull image |
| 管理數據卷 | Volumes |
| 添加用戶 | Users → Add user |
| 備份配置 | Settings → Backup |
| 查看事件 | Events |
十七、總結
Portainer 是 Docker 運維的利器:
- 降低門檻:可視化操作,不用記複雜命令
- 提升效率:一站式管理容器、鏡像、網絡、數據卷
- 團隊協作:多用戶、權限管理,適合團隊使用
- 靈活擴展:支持多環境、Kubernetes、自定義模板
- 開源免費:CE 版功能足夠大多數場景使用
🎯 從命令行轉向可視化管理,用 Portainer 讓 Docker 運維更輕鬆。
相關文章推薦: