美文网首页
docker创建私有本地镜像服务

docker创建私有本地镜像服务

作者: liuzg0734 | 来源:发表于2017-08-22 18:10 被阅读0次

    本文摘自:http://blog.csdn.net/u010397369/article/details/42422243



    和Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库。使用私有仓库有许多优点:

    一、节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可;

    二、提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用。

    接下来我们就大致说一下如何在本地搭建私有仓库。

    环境准备

    环境:两个装有Docker的Ubuntu虚拟机

    虚拟机一:192.168.112.132 用户开发机

    虚拟机二:192.168.112.136 用作私有仓库

    此处我们准备了两个虚拟机,分别都安装了docker,其中132机器用作开发机,136机器用作registry私有仓库机器。环境准备好之后接下来我们就开始搭建私有镜像仓库。

    搭建私有仓库

    首先在136机器上下载registry镜像

    $ sudo docker pull registry

    下载完之后我们通过该镜像启动一个容器

    $ sudo docker run -d -p 5000:5000 registry

    默认情况下,会将仓库存放于容器的/tmp/registry目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失,所以我们一般情况下会指定本地一个目录挂载到容器的/tmp/registry下,如下:

    $ sudo docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry

    接下来我们就要操作把一个本地镜像push到私有仓库中

    在132机器下pull一个比较小的镜像来测试(此处使用的是busybox)

    $ sudo docker pull busybox

    接下来修改一下该镜像的tag

    $ sudo docker tag busybox 192.168.112.136:5000/busybox

    接下来把打了tag的镜像上传到私服

    $ sudo docker push 192.168.112.136:5000/busybox

    因为Docker从1.3.X之后默认docker registry使用的是https,所以当用docker pull命令下载远程镜像时,如果远程docker registry是非https的时候就会报‘http: server gave HTTP response to HTTPS client’错误。

    为了解决这个问题需要在启动docker server时增加启动参数

    修改docker启动配置文件(此处是修改132机器的配置)Ubuntu下配置文件地址为:/etc/init/docker.conf

    在其中增加--insecure-registry 192.168.112.136:5000如下所示:

    $ sudo vi /etc/init/docker.conf

    对于centos,修改/etc/sysconfig/docker文件

    之后重启docker服务,再次执行$ sudo docker push 192.168.112.136:5000/busybox即可成功

    验证私有仓库

    删除了本地镜像,然后我们从私有镜像仓库中下载该镜像

    $ sudo docker pull 192.168.112.136:5000/busybox

    下载成功,验证通过

    通过下面地址,可以查询仓库中所有镜像

    curl http://192.168.112.136:5000/v2/_catalog

    相关文章

      网友评论

          本文标题:docker创建私有本地镜像服务

          本文链接:https://www.haomeiwen.com/subject/tjgldxtx.html