• docker搭建私有registry


    搭建docker的私有registry

    1、   registry简介

    Docker在2015年推出了distribution项目,即Docker Registry 2。相比于old registry,Registry 2使用Go实现,在安全性、性能方面均有大幅改进。Registry设计了全新的Rest API,并且在image存储格式等方面不再兼容于old Registry。去年8月份,docker官方hub使用Registriy 2.1替代了原先的old Registry。如果你要与Registry2交互,你的Docker版本至少要是Docker 1.6。

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

    2、   环境概述

    # uname –r

    3.10.0-327.22.2.el7.x86_64

     

    # docker –v

    Docker version 1.12.6, build 88a4867/1.12.6

     

    # ip a

    10.10.229.43

     

    3、   修改配置文件

    搭建过程中会出现无法push镜像到私有仓库的问题,是https证书问题,因为Docker从1.3.X之后,与docker registry交互默认使用的是https,而此处搭建的私有仓库只提供http服务,我们启动的registry服务不是安全可信赖的,这时我们需要修改docker的配置文件,添加一行内容

    # vim  /etc/sysconfig/docker

    INSECURE_REGISTRY='--insecure-registry 10.10.229.43:5000'

    #10.10.229.43:为dicker容器的宿主机ip,5000为宿主机映射到容器的port。

    # systemctl restart docker

    注意:一定要在搭建仓库前修改配置文件,搭建仓库后修改,重启docker是不生效的,或者你删除原来创建的容器,在另创建一个新的容器,也可以。

    4、      部署registry

    完成第三步后,将docker hub上的registry镜像pull到本地或直接启动容器,不用pull到本地。

    # docker pull docker.io/registry

    # docker tag docker.io/registry  registry:cuishuai

    # docker run -d -p 5000:5000 -v /data/registry:/var/lib/registry registry:cuishuai

         

    参数说明:

    -v /data/registry:/var/lib/registry:默认情况下,会将仓库存放于容器内的/var/lib/registry注意新版本不在是默认放在/tmp/registry目录下,指定本地目录/data/registry挂载到容器

     

    容器启动成功,上传一个镜像进行测试:

    # docker images   

    @我们要通过docker tag将该镜像标志为要推送到私有仓库

    # docker tag registry   10.10.229.43:5000/registry:cuishuai

    # docker images

     

    # docker push 10.10.229.43:5000/registry

    验证方式有两种,一是去/data/registry下看看有没有文件生成;

    二是执行如下命令查看:有输出代表上传成功。此命令也用于查看私有registry的image。

    #  curl  10.10.229.43:5000/v2/_catalog

    {"repositories":["registry"]}

    5、      使用registry

    如果是在其他服务器上使用搭建的registry,必须要编辑docker的配置文件INSECURE_REGISTRY='--insecure-registry 10.10.229.43:5000'

    把上面的配置加入其中;并重新启动docker。

    如果没有执行该操作会报如下错误:

    Error response from daemon: invalid registry endpoint https://10.10.229.43:5000/v0/: unable to ping registry endpoint https://10.10.229.43:5000/v0/

    v2 ping attempt failed with error: Get https://10.10.229.43:5000/v2/: tls: oversized record received with length 20527

     v1 ping attempt failed with error: Get https://10.10.229.43:5000/v1/_ping: tls: oversized record received with length 20527. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry 10.10.229.43:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/10.10.229.43:5000/ca.crt

    修改/etc/sysconfig/docker”

    # vim /etc/sysconfig/docker

    INSECURE_REGISTRY='--insecure-registry 10.10.229.43:5000'

    # systemctl  restart  docker

    # docker pull 10.10.229.43:5000/registry

    Using default tag: latest

    Trying to pull repository 10.10.229.43:5000/registry ...

    latest: Pulling from 10.10.229.43:5000/registry

    90f4dba627d6: Pull complete

    3a754cdc94a5: Pull complete

    0756a217635f: Pull complete

    f82b9495c796: Pull complete

    154ef19ddee6: Pull complete

    Digest:sha256:5eaafa2318aa0c4c52f95077c2a68bed0b13f6d2b464835723d4de1484052299

    --------崔帅的拾荒
  • 相关阅读:
    Vue图片国际化
    lambda表达式
    1
    JSPday11
    JSPday10
    JSPday09
    JSPday08
    JSPday07
    JSPday23 预留
    JSPday05(Servlet)
  • 原文地址:https://www.cnblogs.com/cuishuai/p/7206047.html
Copyright © 2020-2023  润新知