前言
最近,為了方便對命令列過敏的測試或開發人員,我決定部署一個視覺化的管理平臺來管理docker,在我重灌十幾次系統(當然,只是虛擬機器映象克隆),對比之後,終於選擇了一款心儀的管理平臺。
部署docker環境
安裝/升級你的Docker環境,建議使用過阿里雲的映象倉庫下載:mirrors.aliyun.com/help/docker-engine
或執行以下命令:
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -複製程式碼
另外,建議使用阿里雲的映象加速,以方便後期pull 映象。申請個人唯一加速地址cr.console.aliyun.com/
通過修改daemon配置檔案/etc/docker/daemon.json來使用加速器:
sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <
<
-'EOF'{
"registry-mirrors": ["https://***.mirror.aliyuncs.com"]
}EOFsudo systemctl daemon-reloadsudo systemctl restart docker複製程式碼
DockerUI
DockerUI基於Docker API,提供等同Docker命令列的大部分功能。
部署
[root@localhost ~]# docker pull uifd/ui-for-docker Using default tag: latestlatest: Pulling from uifd/ui-for-docker841194d080c8: Pull complete Digest: sha256:fe371ff5a69549269b24073a5ab1244dd4c0b834cbadf244870572150b1cb749Status: Downloaded newer image for uifd/ui-for-docker:latest[root@localhost ~]# docker run -it -d --name docker-web -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-dockerac85040b8a9f2f203c22ba2e4d90a830e31d89a1d6ce77579a7b95de5da51e01複製程式碼
拉取映象
docker pull uifd/ui-for-docker 複製程式碼
啟動容器
docker run -it -d --name docker-web -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-docker 複製程式碼
介面
開啟ip:9000,首頁:
容器管理:
容器網路,這裡可以顯示容器與容器之間的關係。
容器管理:
總結
優點:
- 支援容器管理
- 支援映象管理
- 基於docker api,自身也是一個容器。
- 穩定性高
- 可動態顯示顯示容器之間關係圖
- 容器管理,增加埠對映,增加系統變數、對映目錄等
缺點:
- 沒有登入驗證,因為沒有登入體系,目前解決辦法是,只開放本地訪問,或者通過TLS來對許可權進行控制。
- 無法分配某容器給某使用者。
- 不支援多主機。
- 不支援叢集swarm等
- 功能少
- 不支援控制檯命令
結論
因為沒有登入體系,所以很難在公司裡流通。因為這樣,每個人都可以去控制,即使通過TLS來控制許可權,但無法將容器管理許可權分配給某個使用者,所以最終放棄該平臺。
Shipyard
Shipyard是在Docker Swarm的基礎上,管理Docker資源,包括容器,映象,登錄檔等。
部署
這裡以官網自動化部署為例,部署程式碼如下
curl -sSL https://shipyard-project.com/deploy | bash -s複製程式碼
注意:這將在埠2375上暴露Docker Engine。如果此節點可以在安全網路之外訪問,建議使用TLS。
支援叢集,所以可以新增節點:
curl -sSL https://shipyard-project.com/deploy | ACTION=node DISCOVERY=etcd://10.0.0.10:4001 bash -s複製程式碼
其中上段程式碼中ip地址,為第一臺伺服器的ip地址。
結果它硬生生的啟動了7個容器,其中2個swarm的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESfb81fb51d619 shipyard/shipyard:latest "/bin/controller -..." 2 minutes ago Up 37 seconds 0.0.0.0:8080->
8080/tcp shipyard-controllere9e462e168ea swarm:latest "/swarm j --addr 1..." 2 minutes ago Up 2 minutes 2375/tcp shipyard-swarm-agent8913ed62608d swarm:latest "/swarm m --replic..." 2 minutes ago Up 2 minutes 2375/tcp shipyard-swarm-manageree1e25e0235d shipyard/docker-proxy:latest "/usr/local/bin/run" 2 minutes ago Up 2 minutes 0.0.0.0:2375->
2375/tcp shipyard-proxyf10edb7eda1c alpine "sh" 3 minutes ago Up 3 minutes shipyard-certs6411b4226a6f microbox/etcd:latest "/bin/etcd -addr 1..." 3 minutes ago Up 3 minutes 0.0.0.0:4001->
4001/tcp, 0.0.0.0:7001->
7001/tcp shipyard-discoveryeaf008cbebae rethinkdb "rethinkdb --bind all" 3 minutes ago Up 3 minutes 8080/tcp, 28015/tcp, 29015/tcp shipyard-rethinkdb複製程式碼
增加節點的話,節點機器會自動執行5個容器,不得不說功能強大,還是有代價的。
介面
容器列表
容器詳情
容器監控
容器控制檯
總結
優點:
- 支援映象管理、容器管理。
- 支援控制檯命令
- 容器資源消耗監控
- 支援叢集swarm,可以隨意增加節點
- 支援控制使用者管理許可權,可以設定某個容器對某個使用者只讀、管理許可權。
- 有漢化版
缺點
- 啟動容器較多,佔用每個節點的一部分資源
- 相容性性不高,可能是我自身原因,經常打不開首頁。
結論
總體上講Shipyard功能強大,實用型高,支援叢集,支援容器許可權分配,是公司不二之選,但是考慮到暫時經常打不開首頁,且佔用每臺伺服器較多資源,暫時列為備選方案。
Portainer
Portainer是一款輕量級docker容器管理平臺,佔用資源少,支援叢集,支援許可權分配。
部署
docker run -d -p 9000:9000 portainer/portainer複製程式碼
部署Portainer來管理Swarm群集,也可以在Docker群集中直接部署Portainer作為服務。
docker service create \--name portainer \--publish 9000:9000 \--constraint 'node.role == manager' \--mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \portainer/portainer \-H unix:///var/run/docker.sock複製程式碼
介面
首頁面
映象管理
使用者管理
容器監控
節點管理
控制檯
總結
優點
- 支援容器管理、映象管理
- 輕量級,消耗資源少
- 基於docker api,安全性高,可指定docker api埠,支援TLS證書認證。
- 支援許可權分配
- 支援叢集
缺點
- 功能不夠強大。
- 容器建立後,無法通過後臺增加埠。
結論
雖然Portainer存在一些問題,但已經可以滿足基本需求,且支援許可權分配,最終我選擇了它。
Daocloud
Daocloud 是一個老牌的第三方管理平臺,可以自由增加機器節點,功能極其強大。
部署
登入註冊dashboard.daocloud.io
增加主機節點
curl -sSL https://get.daocloud.io/daomonit/install.sh | sh -s ****金鑰複製程式碼
介面
容器列表
容器日誌
容器管理
可部署多個容器,擴容
映象平臺
總結
優點:
- 支援映象管理、容器管理。
- 支援控制檯命令
- 容器資源消耗監控
- 支援叢集可以隨意增加節點
- 中文平臺
- 映象下載
- 容器擴容、管理
缺點
- 管理平臺無法部署到本地伺服器
- 部分高階功能收費
結論
因為閉源,且收費,暫且團隊放棄它,,但作為自己測試使用,強烈推薦使用它,因為我們點點滑鼠即可輕鬆部署一個強大的管理docker平臺。
最終總結
經過對docker管理平臺的分析,相信大家一定有了自己的認識,有條件可以自己嘗試下部署,如果有新的心得體會或者更好的平臺記得告訴我哦。