摘要:在技術(shù)調(diào)研階段,筆者一開始想的是用的來執(zhí)行命令,后來查找了相關(guān)資料發(fā)現(xiàn),原來本身提供了一套來管理它,因此倒省了很多事情。
一、背景
團(tuán)隊中使用容器比較頻繁,但并不是所有人都可以登陸服務(wù)器去執(zhí)行命令,但是又需要用到docker,所以有一個需求通過web來管理docker,而其他語言并不怎么熟悉,后期維護(hù)成本比較高,所以筆者采用PHP來管理容器。
在技術(shù)調(diào)研階段,筆者一開始想的是用php的system來執(zhí)行docker命令,后來查找了相關(guān)資料發(fā)現(xiàn),原來docker本身提供了一套API來管理它,因此倒省了很多事情。
二、操作概要開啟Docker Remote Api
搭建Web-docker
功能驗證與測試
三、開啟Docker Remote Apidocker提供API支持,但是默認(rèn)情況下并沒有開啟,因此需要使用的時候需要把API功能開啟,筆者開啟的方法選擇了socat這個組件,下面介紹一下如何安裝及啟動socat,這里介紹brew和docker分別的安裝方法,讀者只需要采用其中一種即可。
參考文檔:Docker on Mac上的Remote API 遠(yuǎn)程控制3.1 使用brew安裝socat
brew安裝命令如下:
brew install socat
安裝完成后,需要啟動,命令如下:
socat -d TCP-LISTEN:2375,range=127.0.0.1/32,reuseaddr,fork UNIX:/var/run/docker.sock3.2 使用Docker安裝
安裝docker
brew cask install docker
啟動socat命令
docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 2375:2375 bobrik/socat TCP4-LISTEN:2375,fork,reuseaddr UNIX-CONNECT:/var/run/docker.sock3.3 測試API開啟狀態(tài)
通過CURL來驗證是否開啟成功,命令為:
curl localhost:2375/version
當(dāng)curl輸出如下數(shù)據(jù),便說明api已經(jīng)開啟成功,返回結(jié)果如下:
{ "Platform": { "Name": "" }, "Components": [{ "Name": "Engine", "Version": "18.03.1-ce", "Details": { "ApiVersion": "1.37", "Arch": "amd64", "BuildTime": "2018-04-26T07:22:38.000000000+00:00", "Experimental": "true", "GitCommit": "9ee9f40", "GoVersion": "go1.9.5", "KernelVersion": "4.9.87-linuxkit-aufs", "MinAPIVersion": "1.12", "Os": "linux" } }], "Version": "18.03.1-ce", "ApiVersion": "1.37", "MinAPIVersion": "1.12", "GitCommit": "9ee9f40", "GoVersion": "go1.9.5", "Os": "linux", "Arch": "amd64", "KernelVersion": "4.9.87-linuxkit-aufs", "Experimental": true, "BuildTime": "2018-04-26T07:22:38.000000000+00:00" }四、搭建Web-docker 4.1 下載Web-docker
Web-docker是用PHP所開發(fā)的docker管理系統(tǒng),目前支持持批量刪除鏡像和容器、 鏡像創(chuàng)建、鏡像標(biāo)簽修改、鏡像history與inspect查看; 以及支持容器中的常規(guī)操作,比如重啟、暫停等;支持容器的重命名、進(jìn)程查看、容器內(nèi)文件系統(tǒng)的改變以及inspect的查看;
Web-docker碼云地址:https://gitee.com/songboy/Docker-Web
筆者采用了git克隆方式下載,其命令如下:
git clone https://gitee.com/songboy/Docker-Web.git4.2 新增虛擬主機(jī)
當(dāng)代碼下載下來之后,筆者想要在瀏覽器中訪問,還需要在nginx配置文件中為其創(chuàng)建一個虛擬主機(jī),其配置文件如下,讀者需注意修改項目路徑
server { listen 80; server_name webdocker.songboy.net; root /Users/song/mycode/work/Docker-Web; location / { index index.html index.htm index.php; } location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
筆者增加了一個主機(jī)后,還需要將域名解析到本地,所以增加一個本地host記錄,mac系統(tǒng)中存放于 /etc/hosts ,筆者需要在其尾部增加一行
127.0.0.1 webdocker.songboy.net4.3 修改配置文件
web-docker的配置文件位于項目根目錄的config.php中,筆者需要修改其中的地址部分,將其修改如下內(nèi)容:
確保DOCKER_URL地址正確,比如筆者搭建在本機(jī),所以使用了127.0.0.1作為地址。
五、功能驗證與測試在前面的兩個步驟操作完成之后,筆者已經(jīng)完成了搭建的過程,現(xiàn)在需要來驗證功能是否真的搭建成功,筆者這里驗證鏡像列表、容器列表、鏡像創(chuàng)建幾個功能。
5.1 Web-docker首頁現(xiàn)在筆者打開Web-docker,URL地址如下:
http://webdocker.songboy.net/打開首頁之后,配置正確應(yīng)該可以看到一些統(tǒng)計信息,如下圖所示
5.2 驗證鏡像列表筆者現(xiàn)在通過命令行查看鏡像列表當(dāng)中有哪些鏡像,然后再通過瀏覽器訪問Web-docker,查看鏡像列表是否能對應(yīng)
查看鏡像列表命令:
docker images如下信息可以看到docker當(dāng)前有10個鏡像
REPOSITORY TAG IMAGE ID CREATED SIZE registry.cn-hangzhou.aliyuncs.com/daxia/websafe v3 bfae72172ad6 5 days ago 2.13GB registry.cn-hangzhou.aliyuncs.com/daxia/websafe v2 d18bb3c1ec4f 5 days ago 2.13GB registry.cn-hangzhou.aliyuncs.com/daxia/websafef72835d39e9f 7 days ago 2.13GB registry.cn-hangzhou.aliyuncs.com/daxia/websafe lnmp f6da484f22c0 7 days ago 1.95GB ubuntu latest 735f80812f90 2 weeks ago 83.5MB registry.cn-hangzhou.aliyuncs.com/daxia/ubuntu18_lnmp 1 8801b0f09382 5 weeks ago 334MB registry.cn-hangzhou.aliyuncs.com/daxia/ubuntu18_lnmp1.5 2 9a867670312d 5 weeks ago 1.23GB registry.cn-hangzhou.aliyuncs.com/max/lnmp1.4-php7.1-centos6.7 latest 250c17daece3 11 months ago 1.1GB zzhpeng/lnmp1.4 latest b2ab0ed558bb 17 months ago 602MB bobrik/socat latest e617a56c238e 3 years ago 6.95MB 在瀏覽器中驗證
點擊側(cè)邊的鏡像,可以在瀏覽器中看到的鏡像列表
在瀏覽器的鏡像列表中筆者看到這里所展示的鏡像與命令行返回的一致,說明這個鏡像列表正常。
5.3 驗證容器列表現(xiàn)在筆者再通過命令行查看容器列表當(dāng)中有哪些容器,然后再通過瀏覽器訪問Web-docker,查看容器列表是否能對應(yīng)
命令行查看容器
查看容器鏡像列表命令如下:
docker ps -adocker返回的容器列表:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1002d82da57d bobrik/socat "socat TCP4-LISTEN:2…" 14 minutes ago Up 14 minutes 0.0.0.0:2375->2375/tcp vibrant_pasteur瀏覽器中的容器列表
在Web-docker中,點擊容器列表,變可以看到容器列表,如下圖所示
對比之后可以看到容器返回的容器列表與瀏覽器中的列表一致,同時也看到了筆者啟動socat容器正在運行
5.4 創(chuàng)建鏡像現(xiàn)在筆者需要測試一下創(chuàng)建鏡像的功能,Web-docker支持使用dockerfile語法構(gòu)建鏡像,在鏡像列表中,有一個大文本框,可以把dockerfile代碼粘貼進(jìn)去,如下代碼:
FROM ubuntu:18.04 MAINTAINER tangqingsong # 使用國內(nèi)源 ADD sources.list /etc/apt/ # 安裝服務(wù) RUN apt-get -y update RUN apt-get -y install php php-mysqlnd mysql-server wget unzip查看鏡像列表命令:
docker images當(dāng)命令執(zhí)行完成之后docker返回的前4個結(jié)果如下:
REPOSITORY TAG IMAGE ID CREATED SIZE25253e759d63 5 seconds ago 83.5MB ubuntu 18.04 735f80812f90 2 weeks ago 83.5MB ubuntu latest 735f80812f90 2 weeks ago 83.5MB bobrik/socat latest e617a56c238e 3 years ago 6.95MB 瀏覽器中查看鏡像列表
在命令行當(dāng)中能看出增加,那么現(xiàn)在同樣通過Web-docker來查看是否有變化,如下圖
在圖中可以看到鏡像數(shù)量增加了兩個,一個是base鏡像,另外一個便是筆者新創(chuàng)建的鏡像了。
5.5 后續(xù)Docker-Web目前的功能并不是非常完善,某些功能還處于待添加狀態(tài),有興趣的同學(xué)可以貢獻(xiàn)一些新功能,遇到也可以和筆者一起交流
作者:湯青松
微信:songboy8888
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/29214.html
摘要:在技術(shù)調(diào)研階段,筆者一開始想的是用的來執(zhí)行命令,后來查找了相關(guān)資料發(fā)現(xiàn),原來本身提供了一套來管理它,因此倒省了很多事情。 一、背景 團(tuán)隊中使用容器比較頻繁,但并不是所有人都可以登陸服務(wù)器去執(zhí)行命令,但是又需要用到docker,所以有一個需求通過web來管理docker,而其他語言并不怎么熟悉,后期維護(hù)成本比較高,所以筆者采用PHP來管理容器。 在技術(shù)調(diào)研階段,筆者一開始想的是用php的...
摘要:依賴準(zhǔn)備之前編譯安裝時的參數(shù)編寫安裝腳本環(huán)境搭建使用,參考相應(yīng)官網(wǎng)安裝使用清華源安裝。搭建環(huán)境初始化下載官方備用鏡像制作目標(biāo)是對官方安裝自定義插件,參考官方安裝。 1、設(shè)定目標(biāo) a.初始環(huán)境: [注:測試主機(jī)已設(shè)置好軟件源,虛擬主機(jī)默認(rèn)是root用戶登錄] []:~/tmp# lsb_release -a No LSB modules are available. Distributo...
摘要:初始環(huán)境注測試主機(jī)已設(shè)置好軟件源,虛擬主機(jī)默認(rèn)是用戶登錄目標(biāo)環(huán)境一前期準(zhǔn)備文件列表選擇的是版依賴準(zhǔn)備準(zhǔn)備環(huán)境搭建使用,參考相應(yīng)官網(wǎng)安裝使用清華源安裝卸載舊版本 初始環(huán)境:[注:測試主機(jī)已設(shè)置好軟件源,虛擬主機(jī)默認(rèn)是root用戶登錄] []:~/tmp# lsb_release -a No LSB modules are available. Distributor ID: Deb...
閱讀 3095·2021-11-24 10:47
閱讀 3853·2021-11-02 14:43
閱讀 2244·2021-09-26 10:15
閱讀 2303·2021-09-08 09:35
閱讀 580·2019-08-30 12:45
閱讀 2789·2019-08-29 17:04
閱讀 3221·2019-08-26 14:05
閱讀 1272·2019-08-26 12:10