跳轉到內容

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 運維更輕鬆。


相關文章推薦:

最後更新於: