美文网首页Docker 学习指南
Docker 搭建私有仓库repertory

Docker 搭建私有仓库repertory

作者: 崔健敏 | 来源:发表于2018-09-18 11:32 被阅读0次

    前言

    上一篇文章我们已经使用过公有仓库,现在我们学习一下如何搭建私有仓库。
    私有仓库:顾名思义是私人使用或者公司内部使用的仓库。
    搭建私有仓库可选择多种方案,常用的有两种repertory和harbor。
    repertory是官方推荐使用的,没有可视化界面纯命令行管理。
    harbor是VMware推出的,性能强悍,可视化界面操作方便。

    一、搭建本地私有仓库(repertory)

    1.docker push http 问题:

    docker registry使用的是https传输协议,所以使用docker pull命令下载远程镜像时,docker registry没有使用https协议传输命令的时候就会报错误。

    2.解决docker push http 问题:

    根据自己的实际主机名添加 --insecure-registry 192.168.1.110:5000

    [root@cgsl ~]# vi/etc/sysconfig/docker
    OPTIONS='--selinux-enabled --insecure-registry 192.168.1.110:5000'
    

    3.下载registry 镜像并且启动registry 容器

    [root@cgsl ~]# docker run -d -p 5000:5000 --name registry --restart=on-failure:5 -v /opt/data/registry:/tmp/registry registry
    

    4.创建成功了之后我们可以使用命令查看registry仓库里的镜像

    注意:防火墙如果没有开启5000端口,肯定是无法查看的,查看为空是正常的,还没上传镜像到仓库了

    [root@cgsl ~]# curl -X GET http://192.168.1.110:5000/v2/_catalog
    

    5.上传镜像到registry仓库

    首先修改镜像名

    [root@cgsl ~]# docker tag centos 192.168.1.110:5000/centos
    

    然后上传

    [root@cgsl ~]# docker push 192.168.1.110:5000/centos
    

    6.验证

    [root@cgsl ~]# curl -X GET http://192.168.1.110:5000/v2/_catalog
    

    7.删除仓库中的镜像

    这个着重说一下,docker官方不建议直接删除镜像的层数据,所以没有接口直接删除镜像,删除镜像会很麻烦,一般如果需要删除某镜像我们只删除该镜像的元数据,也就是curl -X GET http://192.168.1.110:5000/v2/_catalog,查看到的镜像信息,而对于该镜像的镜像层数据需要进行垃圾回收才会真的被删除。如果删除的镜像与未删除的镜像公用了一些镜像层数据,垃圾回收之后,你就再也用不了这些镜像了。所以我们删除元数据就好。

    8.进入到registry容器中

    [root@cgsl ~]# docker ps -a
    [root@cgsl ~]# docker exec -it <registry容器id> sh
    / # ls -l /var/lib/registry/docker/registry/v2/repositories/
    / # rm -rf /var/lib/registry/docker/registry/v2/repositories/<镜像名>
    

    直接删除需要删除的本地仓库镜像

    9.退出容器之后,再次查看

    [root@cgsl ~]# curl -X GET http://192.168.1.110:5000/v2/_catalog
    

    二、配置远程各机器

    1.本地的私有仓库搭建好了,其他远程机器如何使用呢?

    不用担心,确保运行私有仓库的宿主机开放5000端口之后,我们自有办法下载仓库中的镜像。

    2.查看远程仓库的镜像

    [root@cgsl ~]# curl -X GET http://192.168.1.110:5000/v2/_catalog
    

    你所在的机器必须能够与192.168.1.110进行通信。

    3.配置daemon.json,并重启docker服务

    echo "{"insecure-registries":["192.168.1.110:5000"]}" >> /etc/docker/daemon.json
    systemctl restart docker.service
    

    4.可以愉快的下载

    docker pull 192.168.1.110:5000/centos
    
    u=3141540493,1060669034&fm=27&gp=0.jpg

    相关文章

      网友评论

        本文标题:Docker 搭建私有仓库repertory

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