快轉到主要內容

用網頁圖形化界面管理Docker容器 ~ Portainer安裝教學,一鍵啟動docker-compose、管理image

Linux系統 Self-hosting自架 Docker
🗓️ 民國112年 癸卯年
✍ 切換正體/簡體字
目錄

如果本機執行的Docker服務一多,用指令管理便嫌瑣碎。

比如,一次要啟動多個聯袂的容器服務,我們會寫一個docker-compose,再用docker compose up指令一次全部跑起來吧?

但要是docker-compose的檔案有很多個呢?每個服務都有自己依賴的子服務要跑,整天在那邊cd來cd去都煩死了!

這個時候,「Portainer」就是您的好幫手,這是一款由Portainer公司推出的圖形化解決方案。

可以用網頁界面控制現有的Docker容器、監測容器運作狀況、撰寫docker-compose、多帳號存取,還能一鍵刪除用不到的映像檔,大幅減少輸入指令的次數。

如果您已經熟悉用指令部署Docker服務,那麼Portainer絕對能讓您事半功倍。

Ivon認為Portainer最好用的功能是「Stacks」,也就是網頁版的Docker-compose,寫好後按一下就可以部署上線/下線,還有美美的UI能夠一覽目前正在跑的服務。

Portainer適合需要管理多重容器的使用者。從Portainers的圖示也可以看出背後含意:讓Portainer(起重機)幫Docker容器裝箱!

話雖如此,您還是要懂一些終端機的Docker指令以備不時之需,不是所有狀況都能用Portainer的圖形界面處理。

1. 安裝Portainer
#

Portainer作為商業產品,分成閉源「商業版(BE)」與開源「社群版(CE)」,功能有差。

商業版可申請3個運算節點的使用授權,在那之後就得付費購買。

如果您可以忍受網頁不時出現的「此功能僅限商業版」廣告,那麼裝社群版功能足矣。

  1. 在Linux系統 安裝Docker,並將一般使用者加入Docker群組。

  2. 確認您的Linux電腦符合 Portainer的系統需求

  3. 建立Docker-compose檔案

mkdir ~/portainer
cd portainer
vim docker-compose.yml
  1. 填入以下內容。其中- 9000:9000可以去掉,因為這是用無加密HTTP存取Portainer的通訊埠。除非您的環境不允許不安全的憑證,否則不要用https://localhost:9000連線到Portainer網頁界面。
version: "3"
services:
  portainer:
    container_name: portainer
    image: portainer/portainer-ce:latest
    ports:
      - 8000:8000
      - 9443:9443
      - 9000:9000
    volumes:
      - portainer_data:/data
      - /var/run/docker.sock:/var/run/docker.sock
    restart: always
volumes:
  portainer_data:
  1. 啟動服務
docker compose up -d
  1. 瀏覽器開啟https://localhost:9443,進入Portainer管理界面(注意是HTTPS,Portainer有自簽SSL憑證,點選允許不安全的連線),註冊一個admin帳號。

2. Portainer網頁管理界面
#

  1. 在登入Portainer後,點選Get Started

  2. 主畫面面板即會顯示本機的容器服務狀態,包含本機映像檔、執行中的容器、Stacks(Docker-compose)資訊。

  3. 針對需要騰出空間的使用者,「Containers」和「Images」頁面就能協助您清理,它會自動標記沒用到的映像檔。

  4. 在Images頁面還可以撰寫Dockerfile,建置自訂映像檔。

  5. 當容器在部署過程出錯時,從網頁界面就能看到錯誤log。你也可以點旁邊Quick Action,點docker exec進入容器的shell。

3. 了解Stacks頁面的用法
#

「Stacks」頁面就是管理docker-compose的地方,我認為這是Portainer最方便的功能,光這個界面就能用網頁寫好多個docker-compose.yml再立即部署。

點選Add Stack,進入Web Editor,填入Docker-compose內容(也可以從Git儲存庫拉取),再按下Deploy the stack,它就會自動拉取映像檔,完成部署。

欲停止docker-compose服務,點選Stop this Stack。

如果要一次更新所有映像檔(類似docker compose pull):在Web Editor點選Update the stack便會順便更新映像檔,

你也可以跑 WatchTower自動更新映像檔。


在安裝Portainer前就已經啟動的docker-compose容器,Portainer對其的控制權限會受限(Control: Limited)。您必須先用docker compose down指令關閉,再轉由Portainer啟動容器。

此外撰寫docker-compose時,映射主機到容器的volume需填寫硬碟的絕對路徑,不建議用./。若有使用到.env檔案也需手動上傳,敬請參閱 Portainer官方文件

4. 備份Portainer資料
#

要備份Portainer的資料,在網頁界面點選左側的Settings,按Download backup file,存成壓縮檔,這樣重裝的時候就可以還原。

或者可以直接複製/var/lib/docker/volumes/portainer_data的目錄到其他地方,要還原的話再把它移動回原位。

5. 透過手機APP存取Portainer
#

Portainer的界面以電腦版網頁為主,手機版不方便操作。

這時可以用第三方開發的程式管理,Android請用 Portarius,iOS用 Harbour

Portarius開啟後輸入Portainer的IP位址和使用者帳號,即可查看Portainer的服務。

相關文章

既然ZeroTier記IP太麻煩,不如使用自訂域名
Linux系統 Self-hosting自架 Docker ZeroTier
Linux系統用Docker跑ZeroTier One,進行內網穿透
Linux系統 Self-hosting自架 ZeroTier Docker
Umami安裝教學,開源重隱私的網站分析工具,Google Analytics替代品
Linux系統 Self-hosting自架 Hugo Google Analytics

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。