详解docker私有仓库搭建与运用实战
hub.docker.com上可以保留镜像,但是网速相对较慢,在内部环境中搭建一个私有的公共仓库是个更好的方案,今天我们就来实战搭建私有docker仓库吧;
环境计划
需要两台机器:docker私服仓库的server和运用docker的普通机器,这两个机器都是ubuntu16版本的server,ip信息如下:
机器名 | ip | 功能 |
---|---|---|
docker-registry | 192.168.119.148 | docker私有仓库服务器 |
docker-app | 192.168.119.155 | 运转docker服务的普通服务器 |
预备机器
本次实战中,上述两台机器是vmware上创建的两个虚拟机,都安装了docker服务,细致的创建和安装历程,请参照《rancher下的kubernetes之一:构建规范化vmware镜像》,记得在vmware中给两个镜像把名字离别改成“docker-registry”和“docker-app”,避免背面搞错了;
虚拟机启动后,请先修改/etc/hostname文件,将两个机器的hostname离别修改成“docker-registry”和“docker-app”,然后用reboot下令重启;
安装私有仓库
登录docker-registry机器(举荐运用SecureCRT);
施行下列下令,会启动一个registry容器,该容器用于供给私有仓库的服务:
docker run --name docker-registry -d -p 5000:5000 registry
施行docker ps下令看一下容器状况,如下图:
容器正常启动,对外供给服务通过5000端口映射到docker-registry的5000端口;
施行下令curl -X GET http://127.0.0.1:5000/v2/_catalog,收到的相应如下,是个json对象,其中repositories对应的值是空的json数组,表示当前仓库里尚无镜像:
{"repositories":[]}
OK,私有仓库已经创建和启动结束了,接下来试试怎样运用吧;
支撑http协定推送
正常状况下,利用服务器推送镜像到仓库用的是https,此处我们通过下令行来测试推送用的是普通的http,所以需要修改docker的启动参数,使之允许以http协定工作;
施行推送镜像的机器是docker-app,所以登录到此机器(举荐运用SecureCRT);
修改/etc/default/docker文件,参加下列红框内容:
再修改 /lib/systemd/system/docker.service,下列红框中的内容,第一行为新增,第二行为修改:
施行下列下令,从新加载配置信息再重启docker服务:
systemctl daemon-reload;service docker restart
推送镜像到私有仓库
接下来我们在docker-app先下载一个镜像,再将这个镜像推送到私有仓库中去;
登录docker-app机器(举荐运用SecureCRT);
施行下令docker pull tomcat,从hub.docker.com下载最新版本的tomcat镜像,如下图:
下载结束后,施行docker images查看镜像的信息,如下图:
如上图红框所示,这个镜像的ID是3dcfe809147d,所以我们施行下列下令,给这个镜像增加一个带有私有仓库IP的TAG,这样背面才能成功推送到私有仓库:
docker tag 3dcfe809147d 192.168.119.148:5000/tomcat
再施行docker images查看镜像的信息,如下图,涌现了一个新的镜像,REPOSITORY是192.168.119.148:5000/tomcat:
施行下列下令进行推送:
docker push 192.168.119.148:5000/tomcat
可以看到顺利进行中,如下图:
推送成功后,在docker-app和docker-registry上离别施行curl -X GET http://192.168.119.148:5000/v2/_catalog,查看私有仓库的镜像信息,都能见到如下内容:
运用私有仓库的镜像
在docker-app机器上,先施行下列下令将当地镜像删掉:
docker rmi 192.168.119.148:5000/tomcat tomcat
再施行下列下令,用私服上的镜像来创建一个容器,映射8080端口:
docker run --name tomcat001 -p 8080:8080 -idt 192.168.119.148:5000/tomcat
当地没有镜像就去私服下载,如下图:
docker-app的IP是192.168.119.155,所以在目前电脑上打开阅读器,输入:192.168.119.155:8080,可以看到下图熟知的tomcat欢送页:
至此本次实战就完毕了,但愿能对您的私有仓库搭建有所帮忙。也但愿大家多多支撑脚本之家。