最近,爲了方便對命令行過敏的測試或開發人員,我決定部署一個可視化的管理平臺來管理docker,在我重裝十幾回系統(固然,只是虛擬機鏡像克隆),對比以後,終於選擇了一款心儀的管理平臺。node
安裝/升級你的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基於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
由於沒有登陸體系,因此很難在公司裏流通。由於這樣,每一個人均可以去控制,即便經過TLS來控制權限,但沒法將容器管理權限分配給某個用戶,因此最終放棄該平臺。服務器
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個容器,不得不說功能強大,仍是有代價的。
容器列表
整體上講Shipyard功能強大,實用型高,支持集羣,支持容器權限分配,是公司不二之選,可是考慮到暫時常常打不開首頁,且佔用每臺服務器較多資源,暫時列爲備選方案。
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複製代碼
首頁面
雖然Portainer存在一些問題,但已經能夠知足基本需求,且支持權限分配,最終我選擇了它。
Daocloud 是一個老牌的第三方管理平臺,能夠自由增長機器節點,功能極其強大。
登陸註冊dashboard.daocloud.io
增長主機節點
curl -sSL https://get.daocloud.io/daomonit/install.sh | sh -s ****密鑰複製代碼
容器列表
由於閉源,且收費,暫且團隊放棄它,,但做爲本身測試使用,強烈推薦使用它,由於咱們點點鼠標便可輕鬆部署一個強大的管理docker平臺。
通過對docker管理平臺的分析,相信你們必定有了本身的認識,有條件能夠本身嘗試下部署,若是有新的心得體會或者更好的平臺記得告訴我哦。