zoukankan      html  css  js  c++  java
  • docker构建本地仓库后,无法登陆解决办法(CentOS/Ubuntu)

    docker版本为:Server Version: 1.12.6

    从dockerhub上下载最新的registry镜像。

    首先、构建registry

    1、下载registry镜像  

      docker pull registry:latest

    2、运行registry容器   

      在运行容器之前先进行权限配置

        mkdir /home/registry/auth/

        docker run --entrypoint htpasswd registry:latest -Bbn username password>> /home/registry/auth/htpasswd

      以上的命令是创建用户名为 username 密码为 password 的配置文件

      启动容器

      docker run -d -p 5000:5000 --restart=always -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd -v /home/registry/auth/:/auth -v /home/registry/:/var/lib/registry/ registry:latest

    3、登陆registry

      docker login IP:5000

      Username: username 

      Password: password
    Error response from daemon: Get https://IP:5000/v1/users/: http: server gave HTTP response to HTTPS client

      此时提示错误,经过多番查找资料,有以下几种方法解决此问题

      1》在/etc/sysconfig/docker文件中添加一下配置:

        ADD_REGISTRY='--insecure-registry IP:5000'
      为了配置简单,省去安全相关的配置,这里使用--insecure-registry选项。
      修改配置文件后,一定要重启docker服务才能生效,所以执行命令:
      service docker restart

      但是,执行此命令之后docker deamon迟迟无法启动成功,而且还报错。

      所以,继续查找其他解决办法。

      2》配置registry地址的方法:

      对CentOS和Ubuntu都适用的配置文件是
      /etc/docker/daemon.json 
      增加:
      { "insecure-registries":["IP:5000"] }
      修改配置文件后,需要重启docker。
      # service docker restart

      再次登陆registry。

      docker login IP:5000

      Username: username 

      Password: password

      Login Succeeded

      之后对本地构建的仓库进行push和pull操作,完全正常。此方法验证无其他问题。

       此时查看docker info会发现最下方Insecure Registries:   多出一条信息

      ......

      ......

    Registry: https://index.docker.io/v1/
    WARNING: No swap limit support
    Insecure Registries:
    IP:5000
    127.0.0.0/8

      

    4、执行 push  和 pull 操作

      1》需要将镜像重新命名:

        docker tag registry:latest IP:5000/registry:latest

      2》执行上传命令:

        docker push IP:5000/registry:latest

        删除重新tag的镜像后,进行下载。

      3》执行下载命令:

        docker pull IP:5000/registry:latest

    5、通过浏览器查看是否上传成功

      http://IP:5000/v2/_catalog

      会返回json串  如:{"repositories":["csphere/csphere"]}

      查看已上传的镜像的 tags

      http://IP:5000/v2/csphere/csphere/tags/list

      {"name":"csphere/csphere","tags":["0.13.0"]}

    其他报错的解决方式一览:

    报错:
    sza@bogon:~$ docker push 192.168.1.115:5000/busybox:1.0 
    The push refers to a repository [192.168.1.115:5000/busybox]
    unable to ping registry endpoint https://192.168.1.115:5000/v0/
    v2 ping attempt failed with error: Get https://192.168.1.115:5000/v2/: EOF
    v1 ping attempt failed with error: Get https://192.168.1.115:5000/v1/_ping: EOF

    解决办法:
    修改Docker配置文件
    vim /etc/default/docker
    增加以下一行
    DOCKER_OPTS="$DOCKER_OPTS --insecure-registry=192.168.1.115:5000"
    重启Docker
    sudo service docker restart

    如果还出现错误的话,说明需要进行如下步骤解决:
    vi /lib/systemd/system/docker.service
    要加EnvironmentFile=-/etc/sysconfig/docker和编辑ExecStart=/usr/bin/docker -d $other_args -H fd://

    systemctl reload

    如果报错:
    sza@bogon:~$ docker info
    An error occurred trying to connect: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.22/info: read unix @->/var/run/docker.sock: read: connection reset by peer
    解决:
    vim /etc/default/docker 
    在该文件中添加如下内容:
    DOCKER_OPTS="-H unix:///var/run/docker.sock -H 0.0.0.0:5555" 
    service docker restart

  • 相关阅读:
    hdu
    HUNAN 11567 Escaping (最大流)
    poj -1185 炮兵阵地 (经典状压dp)
    poj
    POJ 2955 Brackets (区间dp)
    csu
    poj
    CSU 1116 Kingdoms
    SPOJ-SQRBR Square Brackets
    退役贴
  • 原文地址:https://www.cnblogs.com/wozijisun/p/6760645.html
Copyright © 2011-2022 走看看