Heroku 這類型的 Pass 服務優點就在於有完整的 GUI 介面可以使用,但是如果是自己架設的服務,例如 Docker,就沒有這麼方便了,必須使用指令才能查看目前運行中的容器狀況,比如說想看 logs,使用指令的話就必須:
docker ps
查看目前運行中的容器,並取得要查看 logs 的容器 IDdocker logs <container id>
查看 logs使用以上的指令就能查看運行中的容器 logs,但是如果有很多個容器,就必須一個一個查看(而且當 logs 行數很多時...),這樣的方式實在是太麻煩了,所以今天要介紹的 Portainer 就是一個可以使用 GUI 介面管理 Docker 的工具,讓我們可以更方便的管理 Docker。
影片連結:https://youtu.be/o7ZPkruxRbg
環境安裝說明文件可以參考:https://www.casper.tw/development/2023/10/11/portainer/
本篇文章會介紹如何「如何在 Ubuntu 環境上加入 Portainer 工具,並且示範部署 Node.js 專案」,建議對於 Docker 操作有基本的經驗,以下是本文包含的流程:
在安裝 Portainer 前,請確保已經有先安裝 Docker 環境,如果還沒安裝可以先參考 本篇文章:在 Ubuntu 上加入 Docker 環境並部署 Node.js 專案,Portainer 是一個開源的容器管理工具,可以讓您輕鬆管理 Docker 或 Kubernetes,不過本系列文章只會聚焦在 Docker 上。
以下是在遠端 Ubuntu 伺服器上安裝 Portainer 的步驟:
sudo docker pull portainer/portainer-ce
sudo docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
至此,Portainer 已經在您的主機上運行(沒錯,真的已經裝好了)。現在,您可以打開瀏覽器並訪問 http://伺服器IP:9000
。應該能夠看到 Portainer 的登錄界面。第一次訪問時,需要設置管理員密碼,按照你的配置輸入帳密即可完成。
Portainer 運行中的容器
使用 Portainer 部署 Docker 映像檔,就不需要指令就能完成複雜流程,可以透過 Portainer 的介面,直接從 Docker Hub 下載映像檔,並且運行,以下是操作步驟:
注意:路徑中請不要帶入空白鍵,例如:
casper723/nodejs-docker
,而不是casper723 / nodejs-docker
稍等片刻,就可以在 Container 中看到剛剛部署的映像檔,並且可以透過 Portainer 的介面,直接操作映像檔,例如:啟動、停止、刪除等等。
過去,如果要透過 Docker 指令查看容器 logs 是相對麻煩的操作,但是透過 Portainer 就可以直接在介面上查看 logs。只要打開運行中的容器,點選 logs 就可以看到 logs 訊息了。
在 logs 訊息操作上,我會建議稍作以下的調整:
然後再重啟策略上,先前必須在建置 container 時,就要設定重啟策略,但是透過 Portainer 就可以直接在介面上設定,回到 Container 的頁面,在下方就能看到 Restart policies 的設定。接下來直接下拉選擇後,按下 Update 就可以完成設定了。
除此之外,Portainer 在免費的版本下就有許多功能可用(沒錯,他是可以另外付費的),少部分功能則需要另外付款才能開通,但在一開始的使用上,免費的功能就已經足夠了。