zoukankan      html  css  js  c++  java
  • Docker系列(四)Centos6.5 搭建私人镜像仓库 v2

    1、下载、运行registry

          下载registry镜像:

    $ docker pull hub.c.163.com/library/registry

          这个下载的过程有点长,耐心等待一下。O(∩_∩)O哈哈~

    
    
    $ docker images
    
    

         registry镜像下下来后。通过以下的命令启动,并将registry的容器存储images的文件夹映射到宿主server/opt/docker/registry文件夹。

    $ docker run -d -p 5000:5000 -v /opt/docker/registry:/var/lib/registry registry
     执行push命令之后,/var/lib/registry registry文件夹下有一个v2文件夹,所有上传的镜像都会在此文件夹下。

         启动以后在浏览器中输入http://主机IP:5000或者http://主机IP:5000/v2/_catalog。假设有显示就说明Docker私有仓库已经建好了。下一步将本地的images pushDocker私有仓库。

    2、重新对已有镜像打tag

         现将本地的image打一个tag,新image名称必须带有"主机IP:5000"。例如以下(我这里用127.0.0.1仅仅是举例)

    docker tag 5562556b14f9       127.0.0.1:5000/registry :latest
    执行docker images查看是否打成功
    REPOSITORY               TAG                 IMAGE ID            CREATED                   VIRTUAL SIZE
    registry                 latest              5562556b14f9        8 days ago                422.9 MB
    127.0.0.1:5000/registry  latest              5562556b14f9        8 days ago                422.9 MB

         

    3push镜像

    
    
    $ docker push 127.0.0.1:5000/registry
    
    

          下次能够通过pull命令下载到其它server上,那可就快多了。

    pull的时候记得带"主机IP:5000",不然还是去Docker hub上下载而不是私有仓库下载,例如以下命令。

    
    
    $ docker pull 127.0.0.1:5000/registry


          到此。私有仓库存取image就够了。


    出现的问题:

          问题一

      假设是save/loadimage。会出现以下的错误。对于这种image。最好又一次build对应的Dockerfile

    $docker push 127.0.0.1:5000/nexus
    The push refers to a repository [127.0.0.1:5000/nexus] (len: 1)
    Sending image list
    Pushing repository 127.0.0.1:5000/nexus (1 tags)
    
    2014/10/27 14:50:37 HTTP code 400 while uploading metadata: {"error": "Missing key `id' in JSON"}

      问题二:  

      docker1.3.0以后的版本号。增加了认证机制,docker pull & push会报例如以下错误:

    $ docker push 127.0.0.1:5000/registry
    2014/12/02 11:33:04 Error: Invalid registry endpoint https://127.0.0.1:5000/v2/: Get https://127.0.0.1:5000/v2/_ping: EOF. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry 127.0.0.1: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/127.0.0.1:5000/ca.crt

    修改/etc/sysconfig/docker(Ubuntu下配置文件地址为:/etc/init/docker.conf),增加启动选项(已有参数的在后面追加),之后重启docker,不添加报错,https证书问题。

     

    OPTIONS='--insecure-registry 192.168.0.179:5000'    #CentOS 7系统
    other_args='--insecure-registry 192.168.0.179:5000' #CentOS 6系统

     


  • 相关阅读:
    系统管理命令之tty
    系统管理命令之id
    idea中使用junit测试时使用Scanner类无法正常测试
    002-字段不为null
    java8中接口中的default方法
    java之接口适配器
    java之对象适配器
    java之类适配器
    java之多态(六)
    java之多态(五)
  • 原文地址:https://www.cnblogs.com/hdulzt/p/7834765.html
Copyright © 2011-2022 走看看