1. Docker-可視化管理工具總結-推薦使用Portainer
對於初學docker的小白,一款好的可視化工具有助於快速掌握docker基本形態和概念,下面針對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
https://www.portainer.io/installation/
是一款Docker可視化管理工具,可讓您輕松構建和管理 Docker、Docker Swarm、Kubernetes 和 Azure ACI 中的容器。
Portainer 將管理容器的復雜性隱藏在易於使用的 UI 後面。通過消除使用 CLI、編寫 YAML 或理解清單的需要,Portainer 使部署應用程序和解決問題變得如此簡單,任何人都可以做到
Portainer 由兩個元素組成:Portainer 伺服器和 Portainer 代理。兩者都在您現有的容器化基礎設施上作為輕量級容器運行。Portainer 代理應該部署到集群中的每個節點,並配置為向 Portainer 伺服器容器報告。
單個 Portainer 伺服器將接受來自任意數量的 Portainer 代理的連接,從而提供從一個集中式界面管理多個集群的能力。為此,Portainer Server 容器需要數據持久性。Portainer 代理是無狀態的,數據被傳送回 Portainer 伺服器容器。
運行下面兩條命令即可。這些命令會創建一個Portainer專用的卷,然後在8000和9000埠創建容器並運行。
如果使用Portainer管理本地Docker主機的話,需要綁定/var/run/docker.sock (這里是個知識點,涉及docker 之間通信的問題,以及docker 里運行docker )
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主機。
注意: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
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
只能在創建 Portainer Server 容器時添加本地環境。部署 Portainer 後,您無法添加本地環境
第一次登陸會讓選擇管理的容器環境,這里可以選擇本機 ,通過掛載/var/run/docker.sock 和docker 守護進程通信(如圖所示), 關於這部分知識後面會總結分享出來。
之後就可以看到本機上運行的Docker容器了,點擊它們還可以進行容器的管理。
左邊的條目可以管理卷、創建容器、查看主機信息等等。基本上該有的功能都有了
通過該方式,可以將遠程機器添加到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埠綁定環境
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
在k8s集群上執行以下命令
url -L https://downloads.portainer.io/portainer-agent-ce211-k8s-nodeport.yaml -o portainer-agent-k8s.yaml; kubectl apply -f portainer-agent-k8s.yaml
在遠程k8s集群上部署agent後,在Portainer server 上通過nodeport 或者 targetport 進行服務配置,完成k8s集群的連接配置。
https://github.com/jesseffield/lazydocker
LazyDocker是基於終端的一個可視化查詢工具,支持鍵盤操作和滑鼠點擊。相比Portainer來說可能不那麼專業,不過對於開發者來說可能反而更加好用了。因為一般開發者都是使用命令行來運行Docker,偶爾需要圖形化查看的時候,就可以使用LazyDocker這個工具。
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/jesseffield/lazydocker lazyteam/lazydocker'" >> ~/.zshrc
然後就可以在終端中查看Docker容器、鏡像和卷的信息了。LazyDocker支持鍵盤操作和滑鼠點擊,直接用滑鼠點擊就可以查看對應信息了
Docker Desktop 是 Docker 官方自帶的客戶端。 https://docs.docker.com/desktop/windows/ ; 如果是windows用戶,想在Windows系統上運行docker容器,可以使用;