Docker系列(十):Docker圖形界面管理

之前都是使用命令行進行Docker的管理,這裏簡單介紹一下Docker的圖形界面管理。之所以說簡單介紹,是因爲在生產環境都是集羣,很少使用圖形界面管理單臺Docker主機,所以就演示記錄一下,在個人測試時還是可以用到的。


一、使用Docker UI進行Docker管理

1)首先,下載Docker UI鏡像

[root@centos7 ~]# docker pull abh1nav/dockerui:latest
Trying to pull repository docker.io/abh1nav/dockerui ... 
latest: Pulling from docker.io/abh1nav/dockerui
a3ed95caeb02: Pull complete 
5d3df020ecd3: Pull complete 
bebf5a3b4dfb: Pull complete 
e4452c0fe72b: Pull complete 
6167d9726b07: Pull complete 
53ebae19a314: Pull complete 
Digest: sha256:a9c6c5393f561a0f42f41cfa80572b666e745d9b419569c42bac1e5cf9ceda32
Status: Downloaded newer image for docker.io/abh1nav/dockerui:latest

2)創建Docker容器

[root@centos7 ~]# docker run -d -p 9000:9000 -v /var/run/docker.sock:/docker.sock --name dockerui abh1nav/dockerui:latest -e="/docker.sock" 
5f32d12629381614c11fa9d0c742326319c3bdbd8142a61d28e3d61a091b9555
[root@centos7 ~]# docker ps -l
CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS              PORTS                    NAMES
5f32d1262938        abh1nav/dockerui:latest   "./dockerui -e=/do..."   4 seconds ago       Up 3 seconds        0.0.0.0:9000->9000/tcp   dockerui

3)使用瀏覽器訪問

 0001.png

首頁,顯示已經啓動的容器,所有容器的狀態縮略圖,以及容器和鏡像的創建趨勢圖。

0002.png容器管理頁面,顯示所有的容器,並可以通過菜單對容器進行啓動、停止、重啓、殺死、移除等操作。

0003.png鏡像管理頁面,列出本地上的所有鏡像,不過僅僅只能對鏡像進行移除操作。

0004.pngDocker信息頁面,這個不多解釋。


二、使用Shipyard進行Docker管理

Shipyard也是基於Docker API實現的容器圖形管理系統,支持container、image、engine、cluster等功能,可滿足我們基本的容器部署需求。

Shipyard介紹:

    shipyard是docker的web可視化界面管理工具,是建立在docker集羣管理工具Citadel之上,可以管理鏡像、容器、主機等資源的web圖形化工具,包括core和extension兩個版本,core即shipyard主要是把多個 Docker host上的 containers 統一管理(支持跨越多個host),extension即shipyard-extensions添加了應用路由和負載均衡、集中化日誌、部署等。Shipyard是在Docker Swarm實現對容器、鏡像、docker集羣、倉庫、節點進行管理的web系統。

Shipyard特性:

  • 支持節點動態集羣,可擴展節點的規模(swarm、etcd方案)

  • 支持鏡像管理、容器管理、節點管理等功能

  • 可視化的容器管理和監控管理

  • 在線容console終端

Shipyard服務介紹:

鏡像名稱運行服務描述
rethinkdbshipyard數據庫一個NoSQL數據庫,用於存儲shipyard系統的數據,比如賬號、節點、容器等信息
microbox/etcd服務註冊、發現系統K/V存儲系統,用於Swarm節點實現服務註冊、發現。也支持consul、zookeeper。
shipyard/docker-proxy
docker API代理連接本地/var/run/docker.sock代理,用於讓Swarm Agent連接API管理。
swarmswarm集羣官方管理Docker集羣工具,使得多個engine爲一個整體管理,對外提供Swarm manager API,用戶就像操作單臺engine一樣。
shipyard/shipyardshipyard前端容器web管理系統,內部連接Swarm Manager管理容器和RethinkDB存儲數據。

Shipyard分爲自動部署和手動部署,相關文檔參照:http://shipyard-project.com/deploy/ 。自動部署使用腳本自動完成,這裏就做一下手動部署。

1)部署Datastore(也就是rethinkdb)

[root@centos7 ~]# docker run -itd --restart=always --name shipyard-rethinkdb rethinkdb
Unable to find image 'rethinkdb:latest' locally
Trying to pull repository docker.io/library/rethinkdb ... 
latest: Pulling from docker.io/library/rethinkdb
ff4229790957: Pull complete 
14645c851453: Pull complete 
d4550880c6e0: Pull complete 
4225e6f741d5: Pull complete 
fb3b67be7bfa: Pull complete 
Digest: sha256:f71d44a28322bf17aa0d3dd6ccbcba8ff4d59fdda8a132576d6c3132b6ed0e0c
Status: Downloaded newer image for docker.io/rethinkdb:latest
88d777e4b3b29b18b6fa86c6fdacc0188cf0f43792528264ed1a55c47597b566
[root@centos7 ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                            NAMES
88d777e4b3b2        rethinkdb           "rethinkdb --bind all"   5 seconds ago       Up 4 seconds        8080/tcp, 28015/tcp, 29015/tcp   shipyard-rethinkdb

2)部署發現服務(也就是etcd)

[root@centos7 ~]# docker run -itd --name shipyard-discovery -p 4001:4001 -p 7001:7001 --restart=always microbox/etcd -name discovery 
Unable to find image 'microbox/etcd:latest' locally
Trying to pull repository docker.io/microbox/etcd ... 
latest: Pulling from docker.io/microbox/etcd
8ded6e8ab3fd: Pull complete 
bf8f85223d7a: Pull complete 
a3ed95caeb02: Pull complete 
Digest: sha256:941fd46b4eab265c65da9bfbf33397b853a7cef6c16df93a1e3fea7b4e47fc90
Status: Downloaded newer image for docker.io/microbox/etcd:latest
d6c0c946b42f541f91c1b183e99706054dc164fa66bcc91be13a3bdfe2dc272a
[root@centos7 ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                            NAMES
d6c0c946b42f        microbox/etcd       "/bin/etcd -name d..."   4 seconds ago       Up 4 seconds        0.0.0.0:4001->4001/tcp, 0.0.0.0:7001->7001/tcp   shipyard-discovery

3)部署docker代理服務(也就是docker-proxy)

[root@centos7 ~]# docker run -itd -p 2375:2375 --hostname=$HOSTNAME --restart=always --name shipyard-proxy -v /var/run/docker.sock:/var/run/docker.sock -e PORT=2375 shipyard/docker-proxy:latest
Unable to find image 'shipyard/docker-proxy:latest' locally
Trying to pull repository docker.io/shipyard/docker-proxy ... 
latest: Pulling from docker.io/shipyard/docker-proxy
8f4ec95ceaee: Pull complete 
ac77a345f217: Pull complete 
43039e3ef672: Pull complete 
a3ed95caeb02: Pull complete 
Digest: sha256:da6bbd1a145581a940d44940cce0f43705d7f8ec552a4e97e77104ec1b6dc3d1
Status: Downloaded newer image for docker.io/shipyard/docker-proxy:latest
0eae3c9b83883d48fe211ed4f51753430a45a6fd10781019d24715ff1c982747
[root@centos7 ~]# docker ps -l
CONTAINER ID        IMAGE                          COMMAND                CREATED             STATUS              PORTS                    NAMES
0eae3c9b8388        shipyard/docker-proxy:latest   "/usr/local/bin/run"   11 seconds ago      Up 10 seconds       0.0.0.0:2375->2375/tcp   shipyard-proxy

4)部署Swarm Manager

[root@centos7 ~]# docker run -itd --restart=always --name shipyard-swarm-manager swarm:latest manage --host tcp://0.0.0.0:3375 etcd://192.168.49.40:4001 
Unable to find image 'swarm:latest' locally
Trying to pull repository docker.io/library/swarm ... 
latest: Pulling from docker.io/library/swarm
d85c18077b82: Pull complete 
1e6bb16f8cb1: Pull complete 
85bac13497d7: Pull complete 
Digest: sha256:406022f04a3d0c5ce4dbdb60422f24052c20ab7e6d41ebe5723aa649c3833975
Status: Downloaded newer image for docker.io/swarm:latest
04575174ea8c0040a72840a44fab1f494d39dadde4fb097fa7fbb485c8320656
[root@centos7 ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
04575174ea8c        swarm:latest        "/swarm manage --h..."   12 minutes ago      Up 12 minutes       2375/tcp            shipyard-swarm-manger

5)部署Swarm Agent

[root@centos7 ~]# docker run -itd --restart=always --name shipyard-swarm-agent swarm:latest join --addr 192.168.49.40:2375 etcd://192.168.49.40:4001 
efa6eecb736439516919578ee2376a33043c3b40d9595e3bbeec65d0c860d257
[root@centos7 ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
efa6eecb7364        swarm:latest        "/swarm join --add..."   5 seconds ago       Up 4 seconds        2375/tcp            shipyard-swarm-agent

6)部署shipyard管理控制服務

[root@centos7 ~]# docker run -itd --restart=always --name shipyard-controller --link shipyard-rethinkdb:rethinkdb --link shipyard-swarm-manager:swarm -p 8080:8080 shipyard/shipyard:latest server -d tcp://swarm:3375 
Unable to find image 'shipyard/shipyard:latest' locally
Trying to pull repository docker.io/shipyard/shipyard ... 
latest: Pulling from docker.io/shipyard/shipyard
cb5507795515: Pull complete 
fd711d385b34: Pull complete 
9f2a509de079: Pull complete 
a5251eb716bb: Pull complete 
Digest: sha256:5f065362680fa4565dd150c8da3edd09b79a7a3010d3ceef20093c2a879187e0
Status: Downloaded newer image for docker.io/shipyard/shipyard:latest
464149d452e503340827afcaf1a87a114797ac7f0a6cbf15b7b6f0686f1fba15
[root@centos7 ~]# docker ps -l
CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS              PORTS                    NAMES
464149d452e5        shipyard/shipyard:latest   "/bin/controller s..."   7 seconds ago       Up 6 seconds        0.0.0.0:8080->8080/tcp   shipyard-controller

7)使用瀏覽器訪問

0006.png

shipyard的登錄界面,默認賬號密碼是admin/shipyard,登錄即可。

0007.png

容器管理頁面,也是顯示了當前系統中的容器列表。

0008.png

跟Docker UI不同的是,點擊某一個容器後的放大鏡圖標,會顯示該容器的詳細信息(ID,名稱,命令,Swarm節點信息,環境變量,端口,進程等),包含可以對容器執行的操作,包含暫停、停止、重啓、銷燬等指令,還可以查看容器狀態、容器的日誌,另外還可以進入到容器中執行命令,可以說是比較全面了。

0009.png

查看容器的監控信息

0010.png

進入到容器中,執行命令

0011.png

鏡像管理界面,可以對鏡像進行打標籤和刪除操作,另外還可以拉取鏡像,同樣也比Docker UI更全面一些。

除此之外,shipyard圖形界面還包含Swarm節點,鏡像倉庫,賬號以及事件等頁面,就不再一一介紹,在使用中體會就好。Shipyard作爲一個可以對容器集羣進行管理的圖形化管理軟件,確實是比較強大的,這是隻能管理單主機的Docker UI不能比的,其功能全面操作簡單,完全可以滿足圖形界面管理Docker容器的要求。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章