如果本機執行的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個運算節點的使用授權,在那之後就得付費購買。
如果您可以忍受網頁不時出現的「此功能僅限商業版」廣告,那麼裝社群版功能足矣。
在Linux系統 安裝Docker,並將一般使用者加入Docker群組。
確認您的Linux電腦符合 Portainer的系統需求
建立Docker-compose檔案
mkdir ~/portainer
cd portainer
vim docker-compose.yml
- 填入以下內容。其中
- 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:
- data:/data
- /var/run/docker.sock:/var/run/docker.sock
restart: always
volumes:
data:
- 啟動服務
docker compose up -d
- 瀏覽器開啟
https://localhost:9443
,進入Portainer管理界面(注意是HTTPS,Portainer有自簽SSL憑證,點選允許不安全的連線),註冊一個admin帳號。
2. Portainer網頁管理界面#
在登入Portainer後,點選Get Started
主畫面面板即會顯示本機的容器服務狀態,包含本機映像檔、執行中的容器、Stacks(Docker-compose)資訊。
針對需要騰出空間的使用者,「Containers」和「Images」頁面就能協助您清理,它會自動標記沒用到的映像檔。
在Images頁面還可以撰寫Dockerfile,建置自訂映像檔。
當容器在部署過程出錯時,從網頁界面就能看到錯誤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的服務。