• 本地Linux搭建docker仓库


    1. 部署registry

    [root@sophia~]# docker pull registry

    Using default tag: latest

    [root@sophia installer]# docker tag registry:latest registry:v2

    创建存放image的目录

    [root@sophia installer]# mkdir /var/lib/docker/repository

    运行container

    docker run -d -p 5000:5000 --name registry-container --restart=always -v /var/lib/docker/repository:/var/lib/registry registry:v2

    目前一般都是使用v2版本的, -v指定了宿主机上的目录用来作为docker仓库的存储位置,如果不指定的话,registry镜像重启之后会丢失已经存储在本地仓库的镜像文件。

    [root@sophia installer]# docker ps | grep registry

    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES

    d4f51c1c6d55        registry:v2         "/entrypoint.sh /etc…"   3 seconds ago       Up 1 second         0.0.0.0:5000->5000/tcp   registry-container

    查看registry镜像仓库,镜像仓库为空

    curl -X GET http://sophia:5000/v2/_catalog

    {"repositories":[]}

    2. 上传镜像到仓库

    [root@sophia product]# docker tag rancher/pause-amd64:3.1 sophia:5000/mods/modstest:1.0

    [root@sophia product]# docker push sophia:5000/mods/modstest:1.0

    The push refers to repository [sophia:5000/mods/modstest]

    Get https://sophia:5000/v2/: Forbidden

    出错是因为本地默认使用的是https进行上传,这是因为我们启动的registry服务不是安全可以信赖的,这个时候需要修改docker的配置文件/etc/docker/daemon.json,添加--insecure-registry sophia:5000,在重启docker服务

    [root@sophia installer]# vi /etc/docker/daemon.json

     {

    "log-driver": "json-file",

    "log-opts": {

        "max-size": "10m",

        "max-file": "10"

        },

     "insecure-registries": [

        "sophia:5000"

      ]

    }

    重新上传

    如果还是出错,比如有代理设置,并且属于公司内部服务器,出错内容为:

    http://sophia:5000/v2/mods/modstest/blobs/uploads/</a></div> </td></tr><tr> <td class="hr"><hr></td> </tr> <tr><td class="eu_co fo"> Need help? Contact our support team at 5757 </td></tr> <tr><td class="eu_co st"> <span class="s_img"></span> Your organization has selected Zscaler to protect you from internet threats.

    或者用IP:

    [root@sophia product]# docker push sophia:5000/modstest:1.0

    The push refers to repository [sophia:5000/modstest]

    Get http://sophia:5000/v2/: net/http: request canceled (Client.Timeout exceeded while awaiting headers)

    需要修改docker使用的proxy

    查看proxy:docker system info

    修改proxy,依赖于proxy设置的方式,我自己遇到的两种情况:

    情况1:

    如果使用了[root@sophia installer]# vi /usr/lib/systemd/system/docker.service,需要找proxy的位置把本机的IP或者hostname或者需要使用的hostname添加的noproxy

    Environment="HTTP_PROXY=http://proxy.com:8080/"

    Environment="HTTPS_PROXY=https://proxy.com:8080/"

    Environment="NO_PROXY=docker.test.com,10.111.13.81,sophia"

    情况2:

    [root@sophia product]# vi /etc/systemd/system/docker.service.d/http-proxy.conf

    [root@sophia product]# vi /etc/systemd/system/docker.service.d/https-proxy.conf

    [Service]

    Environment="HTTP_PROXY=http://proxy.com:8080" "NO_PROXY=localhost,127.0.0.1,docker.test.com,sophia,10.111.13.81"

    [root@sophia product]# systemctl daemon-reload

    [root@sophia product]# systemctl restart docker

    3. 下载镜像

    在需要下载的image的机器上如果遇到和上传时相同的问题,参考上边上传镜像遇到问题,然后就可以docker pull了

  • 相关阅读:
    英国黑客试图以10万美元勒索苹果
    暗网现大量智能门锁密码,物联网黑客攻击已成常态
    黑客安全专家郭盛华:逃避僵尸网络恶意软件攻击的13种方法
    前端好网站汇总
    中国标准时间转换
    前端各种安装总结
    vue项目如何调用高德地图
    js访问jsion数据动态显示在html页面
    Excel删除重复数据及用公式筛选重复项并标记颜色突出显示
    excel的公式中同一行的一个单元格只能被引用一次
  • 原文地址:https://www.cnblogs.com/z1500592/p/13847516.html
Copyright © 2020-2023  润新知