Docker-可視化管理工具總結-推薦使用Portainer

對於初學docker的小白,一款好的可視化工具有助於快速掌握docker基本形態和概念,下面針對docker可視化工具做些總結

ui-for-docker

UI For Docker是一個使用Docker Remote API的web接口,目的是提供一個簡潔純淨的客戶端實現,爲了連接和管理Docker; 該工具目前已經無人維護,建議使用下面介紹的portainer

docker run -it -d --name docker-web --restart always -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-docker

image.png

Portainer

https://www.portainer.io/installation/
是一款Docker可視化管理工具,可讓您輕鬆構建和管理 Docker、Docker Swarm、Kubernetes 和 Azure ACI 中的容器。

Portainer 將管理容器的複雜性隱藏在易於使用的 UI 後面。通過消除使用 CLI、編寫 YAML 或理解清單的需要,Portainer 使部署應用程序和解決問題變得如此簡單,任何人都可以做到
image.png

Portainer-架構

Portainer 由兩個元素組成:Portainer 服務器和 Portainer 代理。兩者都在您現有的容器化基礎設施上作爲輕量級容器運行。Portainer 代理應該部署到集羣中的每個節點,並配置爲向 Portainer 服務器容器報告。
單個 Portainer 服務器將接受來自任意數量的 Portainer 代理的連接,從而提供從一個集中式界面管理多個集羣的能力。爲此,Portainer Server 容器需要數據持久性。Portainer 代理是無狀態的,數據被傳送回 Portainer 服務器容器。

image.png

Portainer-安裝

運行下面兩條命令即可。這些命令會創建一個Portainer專用的卷,然後在8000和9000端口創建容器並運行。

  1. 基於本地容器的部署

如果使用Portainer管理本地Docker主機的話,需要綁定/var/run/docker.sock(這裏是個知識點,涉及docker 之間通信的問題,以及docker 裏運行docker )

$ docker volume create portainer_data
$ docker run --name portainer  --restart always -d -p 8000:8000 -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

然後在瀏覽器打開對應地址,就會發現成功運行了。第一次運行的時候需要設置賬號,然後選擇要管理的Docker主機。
image.png

注意:portainer/portainer 是 Portainer v1.24.x 的鏡像名,現在已棄用;從 2022 年 1 月開始,Portainer 2.0 的所有新版本都將在 portainer/portainer-ce 中發佈

docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.11.1
  1. 連接到遠程容器的部署
docker run -d -p 9000:9000 --name portainer --restart always -v portainer_data:/data portainer/portainer -H tcp://<REMOTE_HOST>:<REMOTE_PORT>

PS:-H 後面的remote是你想用portainert管理的docker

添加新的容器集羣環境

1. 本機連接方式

只能在創建 Portainer Server 容器時添加本地環境。部署 Portainer 後,您無法添加本地環境

第一次登陸會讓選擇管理的容器環境,這裏可以選擇本機,通過掛載/var/run/docker.sock 和docker 守護進程通信(如圖所示),關於這部分知識後面會總結分享出來。

image.png

image.png
之後就可以看到本機上運行的Docker容器了,點擊它們還可以進行容器的管理。

左邊的條目可以管理卷、創建容器、查看主機信息等等。基本上該有的功能都有了
image.png

2. Remote連接方式

通過該方式,可以將遠程機器添加到Portainer服務端,統一管理遠程機器上的容器環境

將 Docker Standalone 主機連接到 Portainer 時,可以使用兩種方法。您可以通過 TCP 直接連接到 Docker API,也可以在 Docker Standalone 主機上安裝 Portainer 代理並通過代理連接。

https://docs.portainer.io/v/ce-2.11/admin/environments/add/docker

1) 通過遠程訪問TCP:2375端口綁定環境
image.png
使用Remote要求被管理的主機開啓docker守護線程監聽端口
可以在/etc/docker/daemon.json中添加如下配置

{
 "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
}

2) 通過Portainer Agent方式管理docker環境
https://docs.portainer.io/v/ce-2.11/start/install/agent/docker/linux
使用Agent需要在要監控的主機上創建一個portainer agent容器

docker run -d -p 9001:9001 --name portainer_agent --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes portainer/agent:2.11.1

image.png
image.png

3) 通過Portainer Agent方式管理k8s集羣環境

在k8s集羣上執行以下命令

curl -L https://downloads.portainer.io/portainer-agent-ce211-k8s-nodeport.yaml -o portainer-agent-k8s.yaml; kubectl apply -f portainer-agent-k8s.yaml

image.png

image.png

在遠程k8s集羣上部署agent後,在Portainer server 上通過nodeport 或者 targetport 進行服務配置,完成k8s集羣的連接配置。
image.png

image.png

image.png

LazyDocker

https://github.com/jesseduffield/lazydocker

LazyDocker是基於終端的一個可視化查詢工具,支持鍵盤操作和鼠標點擊。相比Portainer來說可能不那麼專業,不過對於開發者來說可能反而更加好用了。因爲一般開發者都是使用命令行來運行Docker,偶爾需要圖形化查看的時候,就可以使用LazyDocker這個工具。

Lazydocker 的具體特性如下:

  • 全視野查看 Docker 或 docker-compose 容器環境的狀態
  • 查看容器或服務的日誌
  • 查看容器指標的 ascii 圖表,這樣你會更像個開發者
  • 自定義圖表以測量不同指標
  • 附加到容器/服務
  • 重啓、刪除與重新構建容器/服務
  • 查看給定鏡像的祖先圖層
  • 修剪佔用磁盤空間的容器、鏡像或卷

image.png

安裝LazyDocker也非常簡單,運行下面的命令即可。

docker run --rm -it -v \
/var/run/docker.sock:/var/run/docker.sock \
-v ~/.config/lazydocker:/.config/jesseduffield/lazydocker \
lazyteam/lazydocker

當然如果發現LazyDocker挺好用,準備經常使用的話,還可以把它做成縮寫添加到shell配置文件中,這樣就可以將它變成一個簡單的命令。例如我用的是zsh,就將下面這樣添加到.zshrc文件中。以後就可以直接用lzd來調用LazyDocker了。

echo "alias lzd='docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock -v ~/.config/lazydocker:/.config/jesseduffield/lazydocker lazyteam/lazydocker'" >> ~/.zshrc

然後就可以在終端中查看Docker容器、鏡像和卷的信息了。LazyDocker支持鍵盤操作和鼠標點擊,直接用鼠標點擊就可以查看對應信息了

Docker Desktop

Docker Desktop 是 Docker 官方自帶的客戶端。https://docs.docker.com/desktop/windows/; 如果是windows用戶,想在Windows系統上運行docker容器,可以使用;

image.png

image.png

小結

  • Portainer 比較適合團隊使用,因爲他有訪問控制。
  • Lazydocker 屬於簡單靈活的小工具,如果你不需要複雜的功能,他們比較合適,而且會讓你更有程序員的感覺。
  • Docker Desktop 是 Windows/Mac 安裝 Docker 時就有的,管理功能比較簡單,在需要簡單的集成 Kubernetes 時可以用他。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章