Docker的web端管理平臺對比(DockerUI 、Shipyard、Portainer、Daocloud)

前言

最近,爲了方便對命令行過敏的測試或開發人員,我決定部署一個可視化的管理平臺來管理docker,在我重裝十幾回系統(固然,只是虛擬機鏡像克隆),對比以後,終於選擇了一款心儀的管理平臺。node

部署docker環境

安裝/升級你的Docker環境,建議使用過阿里雲的鏡像倉庫下載:mirrors.aliyun.com/help/docker-engine
或執行如下命令:web

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來使用加速器:docker

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://***.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker複製代碼

DockerUI

DockerUI基於Docker API,提供等同Docker命令行的大部分功能。json

部署

[root@localhost ~]# docker pull uifd/ui-for-docker 
Using default tag: latest
latest: Pulling from uifd/ui-for-docker
841194d080c8: Pull complete 
Digest: sha256:fe371ff5a69549269b24073a5ab1244dd4c0b834cbadf244870572150b1cb749
Status: 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-docker
ac85040b8a9f2f203c22ba2e4d90a830e31d89a1d6ce77579a7b95de5da51e01複製代碼

拉取鏡像api

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,首頁:
bash


容器管理:

容器網絡,這裏能夠顯示容器與容器之間的關係。

容器管理:

總結

優勢:

  1. 支持容器管理
  2. 支持鏡像管理
  3. 基於docker api,自身也是一個容器。
  4. 穩定性高
  5. 可動態顯示顯示容器之間關係圖
  6. 容器管理,增長端口映射,增長系統變量、映射目錄等

缺點:

  1. 沒有登陸驗證,由於沒有登陸體系,目前解決辦法是,只開放本地訪問,或者經過TLS來對權限進行控制。
  2. 沒法分配某容器給某用戶。
  3. 不支持多主機。
  4. 不支持集羣swarm等
  5. 功能少
  6. 不支持控制檯命令

結論

由於沒有登陸體系,因此很難在公司裏流通。由於這樣,每一個人均可以去控制,即便經過TLS來控制權限,但沒法將容器管理權限分配給某個用戶,因此最終放棄該平臺。服務器

Shipyard

Shipyard是在Docker Swarm的基礎上,管理Docker資源,包括容器,鏡像,註冊表等。 網絡

部署

這裏以官網自動化部署爲例,部署代碼以下curl

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                                            NAMES
fb81fb51d619        shipyard/shipyard:latest       "/bin/controller -..."   2 minutes ago       Up 37 seconds       0.0.0.0:8080->8080/tcp                           shipyard-controller
e9e462e168ea        swarm:latest                   "/swarm j --addr 1..."   2 minutes ago       Up 2 minutes        2375/tcp                                         shipyard-swarm-agent
8913ed62608d        swarm:latest                   "/swarm m --replic..."   2 minutes ago       Up 2 minutes        2375/tcp                                         shipyard-swarm-manager
ee1e25e0235d        shipyard/docker-proxy:latest   "/usr/local/bin/run"     2 minutes ago       Up 2 minutes        0.0.0.0:2375->2375/tcp                           shipyard-proxy
f10edb7eda1c        alpine                         "sh"                     3 minutes ago       Up 3 minutes                                                         shipyard-certs
6411b4226a6f        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-discovery
eaf008cbebae        rethinkdb                      "rethinkdb --bind all"   3 minutes ago       Up 3 minutes        8080/tcp, 28015/tcp, 29015/tcp                   shipyard-rethinkdb複製代碼

增長節點的話,節點機器會自動運行5個容器,不得不說功能強大,仍是有代價的。

界面

容器列表


容器詳情

容器監控

容器控制檯

總結

優勢:

  1. 支持鏡像管理、容器管理。
  2. 支持控制檯命令
  3. 容器資源消耗監控
  4. 支持集羣swarm,能夠隨意增長節點
  5. 支持控制用戶管理權限,能夠設置某個容器對某個用戶只讀、管理權限。
  6. 有漢化版

缺點

  1. 啓動容器較多,佔用每一個節點的一部分資源
  2. 兼容性性不高,多是我自身緣由,常常打不開首頁。

結論

整體上講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複製代碼

界面

首頁面


鏡像管理

用戶管理

容器監控

節點管理

控制檯

總結

優勢

  1. 支持容器管理、鏡像管理
  2. 輕量級,消耗資源少
  3. 基於docker api,安全性高,可指定docker api端口,支持TLS證書認證。
  4. 支持權限分配
  5. 支持集羣

缺點

  1. 功能不夠強大。
  2. 容器建立後,沒法經過後臺增長端口。

結論

雖然Portainer存在一些問題,但已經能夠知足基本需求,且支持權限分配,最終我選擇了它。

Daocloud

Daocloud 是一個老牌的第三方管理平臺,能夠自由增長機器節點,功能極其強大。

部署

登陸註冊dashboard.daocloud.io
增長主機節點

curl -sSL https://get.daocloud.io/daomonit/install.sh | sh -s ****密鑰複製代碼

界面

容器列表


容器日誌

容器管理

可部署多個容器,擴容

鏡像平臺

總結

優勢:

  1. 支持鏡像管理、容器管理。
  2. 支持控制檯命令
  3. 容器資源消耗監控
  4. 支持集羣能夠隨意增長節點
  5. 中文平臺
  6. 鏡像下載
  7. 容器擴容、管理

缺點

  1. 管理平臺沒法部署到本地服務器
  2. 部分高級功能收費

結論

由於閉源,且收費,暫且團隊放棄它,,但做爲本身測試使用,強烈推薦使用它,由於咱們點點鼠標便可輕鬆部署一個強大的管理docker平臺。

最終總結

通過對docker管理平臺的分析,相信你們必定有了本身的認識,有條件能夠本身嘗試下部署,若是有新的心得體會或者更好的平臺記得告訴我哦。

相關文章
相關標籤/搜索