国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用PHP搭建Web版Docker管理系統實踐

testHs / 980人閱讀

摘要:在技術調研階段,筆者一開始想的是用的來執行命令,后來查找了相關資料發現,原來本身提供了一套來管理它,因此倒省了很多事情。

一、背景

團隊中使用容器比較頻繁,但并不是所有人都可以登陸服務器去執行命令,但是又需要用到docker,所以有一個需求通過web來管理docker,而其他語言并不怎么熟悉,后期維護成本比較高,所以筆者采用PHP來管理容器。

在技術調研階段,筆者一開始想的是用php的system來執行docker命令,后來查找了相關資料發現,原來docker本身提供了一套API來管理它,因此倒省了很多事情。

二、操作概要

開啟Docker Remote Api

搭建Web-docker

功能驗證與測試

三、開啟Docker Remote Api

docker提供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.sock
3.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.sock
3.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.git
4.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.net
4.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/websafe                                f72835d39e9f        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 -a

docker返回的容器列表:

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             SIZE
                            25253e759d63        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

相關文章

  • 使用PHP搭建WebDocker管理系統實踐

    摘要:在技術調研階段,筆者一開始想的是用的來執行命令,后來查找了相關資料發現,原來本身提供了一套來管理它,因此倒省了很多事情。 一、背景 團隊中使用容器比較頻繁,但并不是所有人都可以登陸服務器去執行命令,但是又需要用到docker,所以有一個需求通過web來管理docker,而其他語言并不怎么熟悉,后期維護成本比較高,所以筆者采用PHP來管理容器。 在技術調研階段,筆者一開始想的是用php的...

    MRZYD 評論0 收藏0
  • (學習到實踐)一、環境搭建準備

    摘要:依賴準備之前編譯安裝時的參數編寫安裝腳本環境搭建使用,參考相應官網安裝使用清華源安裝。搭建環境初始化下載官方備用鏡像制作目標是對官方安裝自定義插件,參考官方安裝。 1、設定目標 a.初始環境: [注:測試主機已設置好軟件源,虛擬主機默認是root用戶登錄] []:~/tmp# lsb_release -a No LSB modules are available. Distributo...

    alaege 評論0 收藏0
  • (全棧學習實踐)一、環境搭建準備

    摘要:初始環境注測試主機已設置好軟件源,虛擬主機默認是用戶登錄目標環境一前期準備文件列表選擇的是版依賴準備準備環境搭建使用,參考相應官網安裝使用清華源安裝卸載舊版本 初始環境:[注:測試主機已設置好軟件源,虛擬主機默認是root用戶登錄] []:~/tmp# lsb_release -a No LSB modules are available. Distributor ID: Deb...

    CocoaChina 評論0 收藏0

發表評論

0條評論

testHs

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<