博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker之私有仓库的搭建
阅读量:4147 次
发布时间:2019-05-25

本文共 2034 字,大约阅读时间需要 6 分钟。

hub.docker.com上可以保存镜像,但是网速相对较慢,在内部环境中搭建一个私有的公共仓库是个更好的方案,今天我们就来实战搭建私有docker仓库吧;

环境规划

需要两台机器:docker私服仓库的server和使用docker的普通机器,这两个机器都是centos7版本的server,一台机器名为 centos7-1,ip为192.168.6.78的私有仓库服务器,另一台机器名为centos7-2,ip为192.168.6.173的运行docker服务的普通服务器 。      

在centos7-1上安装docker的私有仓库

sudo docker run -d -v /home/sukang/registry:/var/lib/registry -p 5000:5000 --restart=always --privileged=true --name registry registry:latest

-v /home/sukang/registry:/var/lib/registry 默认情况下,会将仓库存放于容器内的/var/lib/registry目录下,指定本地目录挂载到容器。

-p 5000:5000 端口映射

--restart=always 在容器退出时总是重启容器,主要应用在生产环境

--privileged=true 在CentOS7中的安全模块selinux把权限禁掉了,参数给容器加特权,不加上传镜像会报权限错误OSError: [Errno 13] Permission denied: ‘/tmp/registry/repositories/liibrary’)或者(Received unexpected HTTP status: 500 Internal Server Error)错误

--name registry 指定容器的名称

通过执行上面的run命令,实际我们已经完成了Docker私有仓库的搭建。

推送nginx到registry仓库

使用tag命令修改标签

sudo docker tag nginx localhost:5000/nginx

推送到仓库

sudo docker push localhost:5000/nginx

执行命令curl -X GET ,收到的响应如下,是一个json对象,表示已经有了nginx的镜像

好的,私有仓库已经创建和启动完毕了,接下来试试如何使用吧。

支持http协议的推送

正常情况下,应用服务器推送镜像到仓库用的是https,此处我们通过命令行来测试推送用的是普通的http,所以需要修改docker的启动参数,使之允许以http协议工作;

       执行推送镜像的机器是centos7-2,所以登录到此机器

       执行命令docker pull  tomcat,从hub.docker.com下载最新版本的tomcat镜像,如下图:

下载完毕后,执行docker images查看镜像的信息,如下图:

如上图红框所示,这个镜像的ID是ca9e2fccef98,所以我们执行以下命令,给这个镜像添加一个带有私有仓库IP的TAG,这样后面才能成功推送到私有仓库:

docker tag ca9e2fccef98 192.168.6.78:5000/tomcat

再执行docker images查看镜像的信息,如下图,出现了一个新的镜像,REPOSITORY是192.168.6.78:5000/tomcat: 

执行以下命令进行推送:

docker push 192.168.6.78:5000/tomcat

此时遇到一个问题

解决方案是:

在/etc/docker下的daemon.json文件中,写入:

{ "insecure-registries":["192.168.6.78:5000"]}

重启docker:

systemctl restart docker.service

然后再执行

docker push 192.168.6.78:5000/tomcat

推送成功后,在浏览器中打开 ,查看私有仓库的镜像信息,都能见到如下内容:

使用私有仓库的镜像

在centos7-2机器上,先执行以下命令将本地镜像删掉:

docker rmi 192.168.6.78:5000/tomcat tomcat

再执行以下命令,用私服上的镜像来创建一个容器,映射8080端口:

docker run --name tomcat001 -p 8080:8080 -idt 192.168.6.78:5000/tomcat

本地没有镜像就去私服下载,如下图: 

centos7-2的IP是192.168.6.173,所以在当前电脑上打开浏览器,输入:192.168.6.173:8080,可以看到下图熟悉的tomcat欢迎页:

至此本次实战就结束了,希望能对您的私有仓库搭建有所帮助。

转载地址:http://frnti.baihongyu.com/

你可能感兴趣的文章
(转载)正确理解cookie和session机制原理
查看>>
jQuery ajax - ajax() 方法
查看>>
将有序数组转换为平衡二叉搜索树
查看>>
最长递增子序列
查看>>
从一列数中筛除尽可能少的数,使得从左往右看这些数是从小到大再从大到小...
查看>>
判断一个整数是否是回文数
查看>>
经典shell面试题整理
查看>>
腾讯的一道面试题—不用除法求数字乘积
查看>>
素数算法
查看>>
java多线程环境单例模式实现详解
查看>>
将一个数插入到有序的数列中,插入后的数列仍然有序
查看>>
在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出no found
查看>>
万年历
查看>>
作为码农你希望面试官当场指出你错误么?有面试官这样遭到投诉!
查看>>
好多程序员都认为写ppt是很虚的技能,可事实真的是这样么?
查看>>
如果按照代码行数发薪水会怎样?码农:我能刷到公司破产!
查看>>
程序员失误造成服务停用3小时,只得到半月辞退补偿,发帖喊冤
查看>>
码农:很多人称我“技术”,感觉这是不尊重!纠正无果后果断辞职
查看>>
php程序员看过来,这老外是在吐糟你吗?看看你中了几点!
查看>>
为什么说程序员是“培训班出来的”就是鄙视呢?
查看>>