• Docker私有仓库Registry实战


    参考:

    https://www.cnblogs.com/soar1688/p/6828329.html

    1. 关于Registry

    官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。但是,有时候,我们的使用场景需要我们拥有一个私有的镜像仓库用于管理我们自己的镜像。这个可以通过开源软件Registry来达成目的。

     Registry在github上有两份代码:老代码库和新代码库。老代码是采用python编写的,存在pull和push的性能问题,出到0.9.1版本之后就标志为deprecated,不再继续开发。从2.0版本开始就到在新代码库进行开发,新代码库是采用go语言编写,修改了镜像id的生成算法、registry上镜像的保存结构,大大优化了pull和push镜像的效率。

     官方在Docker hub上提供了registry的镜像(详情),我们可以直接使用该registry镜像来构建一个容器,搭建我们自己的私有仓库服务。

     2. Registry的部署

       1. 运行下面命令获取registry镜像

          docker pull registry

         下载到的版本默认为 docker.io/registry            latest 

      2. 将registry镜像运行并生成一个容器


         docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest


         Registry服务默认会将上传的镜像保存在容器的/var/lib/registry,将主机的/opt/registry目录挂载到该目录,即可实现将镜像保存到主机的/opt/registry目录了。

      3. 运行docker ps看一下容器运行情况

     4.registry容器启动后,打开浏览器输入http://ip_add:5000/v2/,看到下面情况说明registry运行正常

      

    3. 测试上传镜像到Registry

       通过将镜像push到registry来验证,首先将主机的registry镜像命名为符合仓库要求registry_url:port/ImageName:tag的格式,如图

    通过docker tag命令来实现命名

       docker tag jdk_8u191:20190307 192.168.179.128:5000/jdk_8u191:20190307

       通过命令 docker images 查看本地镜像,重新创建了一个镜像

       上传jdk镜像到Registry仓库: docker push 192.168.179.128:5000/jdk_8u191:20190307

          注意:

         可能会出现无法push镜像到私有仓库的问题。提示:

    这是因为我们启动的registry服务不是安全可信赖的。这时需要修改客户端docker的配置文件/etc/docker/daemon.json,添加下面蓝色的内容(registry服务地址)

    {
    "registry-mirrors": [ "https://pee6w651.mirror.aliyuncs.com"],"insecure-registries": ["192.168.179.128:5000"]
    }

     

       "registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com"] 是阿里云代理的Registry Hub仓库的地址,可以加快国内访问Registry Hub仓库的速度。

    修改好之后需要重启Docker服务才能生效,执行命令:systemctl restart docker ,再push即可。

      push成功之后,查看本地/opt/registry目录下已经有了刚推送上来的registry镜像,也可以在浏览器中输入http://ip_add:5000/v2/_catalog

       或者使用以下命令查看:

       # curl -XGET http://registry:5000/v2/_catalog

     # curl -XGET http://registry:5000/v2/image_name/tags/list

      至此,我们的Registry私有仓库搭建完成,如果在今后中要使用,可以使用命令:docker pull ip_add:5000/jdk_8u191:20190307 拉取。

  • 相关阅读:
    增强for循环用法___ArrayList数组实现使用下标最好,LinkedList使用增强型的(转载)
    Java类加载的时机_4种主动引用会触犯类加载+剩下的被动引用不会触发类的加载
    剑指offer_面试题11 数值的整数次方_考察代码的完整性
    深入理解Java虚拟机博客参考目录
    GPU总结(1)
    牛客_Java_值传递(拷贝)不该表原来变量+传引用的话会一起改变
    Java 源码学习线路————_先JDK工具包集合_再core包,也就是String、StringBuffer等_Java IO类库
    centos7 安装jdk1.8
    JPA
    javaScript获取url中的参数
  • 原文地址:https://www.cnblogs.com/ExMan/p/12030659.html
Copyright © 2020-2023  润新知