一、后台容器在团队中使用频率很高,但并不是每个人都能登录服务器执行命令,但是又需要使用docker,所以就有了a需要通过webdocker来管理,其他语言不是很熟悉,后期维护成本比较高,所以用PHP来管理容器。在技??术研究阶段,笔者初步想到了使用php系统执行docker命令。后来通过查找相关资料,发现docker本身就提供了一套API对其进行管理,省去了很多工作。二、操作概述启用DockerRemoteApi构建Web-docker功能验证和测试三、启用DockerRemoteApidocker提供API支持,但默认不启用,所以需要使用时需要启用API功能.笔者选择启用的方式既然socat组件已经安装好了,下面就来介绍一下如何安装和启动socat。这里分别介绍一下brew和docker的安装方法。读者只需使用其中之一即可。参考文档:RemoteAPIremotecontrolonDockeronMac3.1Installsocatusingbrew,reuseaddr,forkUNIX:/var/run/docker.sock3.2使用Docker安装安装dockerbrewcaskinstalldockerstartsocat命令dockerrun-d-v/var/run/docker.sock:/var/run/docker.sock-p2375:2375bobrik/socatTCP4-LISTEN:2375,fork,reuseaddrUNIX-CONNECT:/var/run/docker.sock3.3测试APIopenstatus使用curl验证是否开启成功,命令为:curllocalhost:2375/version当curl输出如下数据时,表示api开启成功,返回结果如下:{"Platform“:{“名称”:“”},“组件”:[{“名称”:“引擎”,“版本”:“18.03.1-ce”,“详细信息”:{“ApiVersion”:“1.37”,“Arch”:“amd64”,“BuildTime”:“2018-04-26T07:22:38.000000000+00:00”,“实验”:“true”,“GitCommit”:“9ee9f40”,“GoVersion”:“go1.9.5","KernelVersion":"4.9.87-linuxkit-aufs","MinAPIVersion":"1.12","Os":"linux"}}],"版本":"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"}4.搭建Web-docker4.1下载Web-dockerWeb-docker是一个用PHP开发的docker管理系统。目前支持批量删除镜像和容器、创建镜像、修改镜像标签、镜像历史和inspectView;并支持容器内的常规操作,如重启、暂停等;支持容器重命名、进程查看、容器内文件系统变更、inspect查看;web-docker代码云地址:https://gitee.com/songboy/Docker-Web笔者使用gitclone方式下载,命令如下:gitclonehttps://gitee.com/songboy/Docker-web.git4.2添加新的虚拟主机代码下载完成后,笔者想要在浏览器中访问,还需要在nginx配置文件中创建一个虚拟主机。配置文件如下。读者要注意修改项目路径server{listen80;server_namewebdocker.songboy.net;root/Users/song/mycode/work/Docker-Web;location/{indexindex.htmlindex.htmindex.php;}location~\.php${fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;Fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;包括fastcgi_params;}}添加主机后,笔者还需要将域名解析到本地,所以添加一条本地主机记录,在mac系统中存放在/etc/hosts中,笔者需要在最后添加一个line127.0.0.1webdocker.songboy.net4.3修改配置文件web-docker的配置文件位于项目根目录的config.php中。我需要修改其中的地址部分,修改如下:f72835d39e9f7天前2.13GBregistry.cn-hangzhou.aliyuncs.com/daxia/websafelnmpf6da484f22c07天前1.95GBubuntulatest735f80812f902周前83.5MBregistry.cn-hangzhou.aliyuncs.com/daxia/ubuntu18_lnmp18801b0f093825周前334MBregistry.cn-hangzhou.aliyuncs.com/daxia/ubuntu18_lnmp1.529a867670312d5周前1.23GB-hangzhouregistry.aliyuncs.com/max/lnmp1.4-php7.1-centos6.7latest250c17daece311个月前1.1GBzzhpeng/lnmp1.4latestb2ab0ed558bb17个月前602MBbobrik/socatlateste617a56c238e3年前在浏览器端验证6.95MB点击Side镜像,在浏览器中可以看到的镜像列表在浏览器的镜像列表中,笔者看到这里显示的镜像与命令行返回的是一致的,说明镜像列表是正常的5.3验证容器列表现在笔者通过命令行查看容器列表中有哪些容器,然后通过浏览器访问Web-docker查看容器列表是否可以对应命令行查看容器。查看容器镜像列表的命令如下:dockerps-adockerreturnContainerlistfor:CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES1002d82da57dbobrik/socat"socatTCP4-LISTEN:2..."14分钟前Up14分钟0.0.0.0:2375->2375/tcpvibrant_pasteurWeb中的浏览器容器列表-在docker中,点击容器列表,可以看到容器列表。如下图对比后,可以看到容器返回的容器列表与浏览器中的列表是一致的。同时也可以看到笔者启动了socat容器,并且正在运行。5.4现在创建镜像笔者需要测试创建镜像的功能。Web-docker支持使用dockerfile语法构建镜像。在镜像列表中,有一个大文本框可以粘贴dockerfile代码,如下:FROMubuntu:18.04MAINTAINERtangqingsong#使用国内源ADDsources.list/etc/apt/#安装服务RUNapt-get-yupdateRUNapt-get-yinstallphpphp-mysqlndmysql-serverwgetunzip查看镜像列表命令:dockerimages命令执行时docker返回before4个结果如下:REPOSITORYTAGIMAGEIDCREATEDSIZE
