摘要:在技術調研階段,筆者一開始想的是用的來執行命令,后來查找了相關資料發現,原來本身提供了一套來管理它,因此倒省了很多事情。
一、背景
團隊中使用容器比較頻繁,但并不是所有人都可以登陸服務器去執行命令,但是又需要用到docker,所以有一個需求通過web來管理docker,而其他語言并不怎么熟悉,后期維護成本比較高,所以筆者采用PHP來管理容器。
在技術調研階段,筆者一開始想的是用php的system來執行docker命令,后來查找了相關資料發現,原來docker本身提供了一套API來管理它,因此倒省了很多事情。
二、操作概要開啟Docker Remote Api
搭建Web-docker
功能驗證與測試
三、開啟Docker Remote Apidocker提供API支持,但是默認情況下并沒有開啟,因此需要使用的時候需要把API功能開啟,筆者開啟的方法選擇了socat這個組件,下面介紹一下如何安裝及啟動socat,這里介紹brew和docker分別的安裝方法,讀者只需要采用其中一種即可。
參考文檔:Docker on Mac上的Remote API 遠程控制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開啟狀態
通過CURL來驗證是否開啟成功,命令為:
curl localhost:2375/version
當curl輸出如下數據,便說明api已經開啟成功,返回結果如下:
{ "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所開發的docker管理系統,目前支持持批量刪除鏡像和容器、 鏡像創建、鏡像標簽修改、鏡像history與inspect查看; 以及支持容器中的常規操作,比如重啟、暫停等;支持容器的重命名、進程查看、容器內文件系統的改變以及inspect的查看;
Web-docker碼云地址:https://gitee.com/songboy/Docker-Web
筆者采用了git克隆方式下載,其命令如下:
git clone https://gitee.com/songboy/Docker-Web.git4.2 新增虛擬主機
當代碼下載下來之后,筆者想要在瀏覽器中訪問,還需要在nginx配置文件中為其創建一個虛擬主機,其配置文件如下,讀者需注意修改項目路徑
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; } }
筆者增加了一個主機后,還需要將域名解析到本地,所以增加一個本地host記錄,mac系統中存放于 /etc/hosts ,筆者需要在其尾部增加一行
127.0.0.1 webdocker.songboy.net4.3 修改配置文件
web-docker的配置文件位于項目根目錄的config.php中,筆者需要修改其中的地址部分,將其修改如下內容:
確保DOCKER_URL地址正確,比如筆者搭建在本機,所以使用了127.0.0.1作為地址。
五、功能驗證與測試在前面的兩個步驟操作完成之后,筆者已經完成了搭建的過程,現在需要來驗證功能是否真的搭建成功,筆者這里驗證鏡像列表、容器列表、鏡像創建幾個功能。
5.1 Web-docker首頁現在筆者打開Web-docker,URL地址如下:
http://webdocker.songboy.net/打開首頁之后,配置正確應該可以看到一些統計信息,如下圖所示
5.2 驗證鏡像列表筆者現在通過命令行查看鏡像列表當中有哪些鏡像,然后再通過瀏覽器訪問Web-docker,查看鏡像列表是否能對應
查看鏡像列表命令:
docker images如下信息可以看到docker當前有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 在瀏覽器中驗證
點擊側邊的鏡像,可以在瀏覽器中看到的鏡像列表
在瀏覽器的鏡像列表中筆者看到這里所展示的鏡像與命令行返回的一致,說明這個鏡像列表正常。
5.3 驗證容器列表現在筆者再通過命令行查看容器列表當中有哪些容器,然后再通過瀏覽器訪問Web-docker,查看容器列表是否能對應
命令行查看容器
查看容器鏡像列表命令如下:
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 創建鏡像現在筆者需要測試一下創建鏡像的功能,Web-docker支持使用dockerfile語法構建鏡像,在鏡像列表中,有一個大文本框,可以把dockerfile代碼粘貼進去,如下代碼:
FROM ubuntu:18.04 MAINTAINER tangqingsong # 使用國內源 ADD sources.list /etc/apt/ # 安裝服務 RUN apt-get -y update RUN apt-get -y install php php-mysqlnd mysql-server wget unzip查看鏡像列表命令:
docker images當命令執行完成之后docker返回的前4個結果如下:
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 瀏覽器中查看鏡像列表
在命令行當中能看出增加,那么現在同樣通過Web-docker來查看是否有變化,如下圖
在圖中可以看到鏡像數量增加了兩個,一個是base鏡像,另外一個便是筆者新創建的鏡像了。
5.5 后續Docker-Web目前的功能并不是非常完善,某些功能還處于待添加狀態,有興趣的同學可以貢獻一些新功能,遇到也可以和筆者一起交流
作者:湯青松
微信:songboy8888
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27410.html
摘要:在技術調研階段,筆者一開始想的是用的來執行命令,后來查找了相關資料發現,原來本身提供了一套來管理它,因此倒省了很多事情。 一、背景 團隊中使用容器比較頻繁,但并不是所有人都可以登陸服務器去執行命令,但是又需要用到docker,所以有一個需求通過web來管理docker,而其他語言并不怎么熟悉,后期維護成本比較高,所以筆者采用PHP來管理容器。 在技術調研階段,筆者一開始想的是用php的...
摘要:依賴準備之前編譯安裝時的參數編寫安裝腳本環境搭建使用,參考相應官網安裝使用清華源安裝。搭建環境初始化下載官方備用鏡像制作目標是對官方安裝自定義插件,參考官方安裝。 1、設定目標 a.初始環境: [注:測試主機已設置好軟件源,虛擬主機默認是root用戶登錄] []:~/tmp# lsb_release -a No LSB modules are available. Distributo...
摘要:初始環境注測試主機已設置好軟件源,虛擬主機默認是用戶登錄目標環境一前期準備文件列表選擇的是版依賴準備準備環境搭建使用,參考相應官網安裝使用清華源安裝卸載舊版本 初始環境:[注:測試主機已設置好軟件源,虛擬主機默認是root用戶登錄] []:~/tmp# lsb_release -a No LSB modules are available. Distributor ID: Deb...
閱讀 2285·2021-11-15 11:37
閱讀 2954·2021-09-01 10:41
閱讀 787·2019-12-27 11:58
閱讀 747·2019-08-30 15:54
閱讀 715·2019-08-30 13:52
閱讀 2930·2019-08-29 12:22
閱讀 1075·2019-08-28 18:27
閱讀 1452·2019-08-26 18:42