docker私有仓库搭建

  • 安装Docker Registry,它可以用来存储和管理自己的镜像

      docker pull registry:2.4.1
    
  • 运行Registry容器

      docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry
    

    -d 是后台启动容器。

    -p 将容器的 5000 端口映射到 Host 的 5000 端口。5000 是 registry 服务端口。

    -v 将容器 /var/lib/registry目录映射到宿主机的/myregistry,用于存放镜像数据。

    在pull或者push镜像时报拒绝连接的错误

    由于docker1.3版本后pull ,push等操作都是采用https请求,为了不考虑创建证书,所以我们可以添加一个不安全的http连接

    创建或者修改/etc/docker/daemon.json 文件,并在其中写入

      {
         "insecure-registries": ["192.168.102.2:5000"]
      }
    

    其中为安装了Registry的机器ip地址。需要注意的是在安装registry的节点和客户端需要访问私有Registry的节点都需要执行此步操作。

    修改文之后执行以下命令重启节点docker。

      systemctl daemon-reload
      systemctl restart docker
    

    通过 docker tag重命名镜像,使之与registry匹配

    docker pull hello-world docker tag hello-world 192.168.105.2:5000/hello-world docker push 192.168.105.2:5000/hello-world 此时hello-world就被push到了本地的镜像仓库,方便其他节点pull

    其他节点下载镜像

    docker pull hello-world 192.168.105.2:5000

    其他节点上传镜像

    docker push 192.168.105.2:5000/hello-world
  • 配置带用户权限的docker registry v2

    到上面为止,registry已经可以使用了。如果想要控制registry的使用权限,使其只有在登录用户名和密码之后才能使用的话,还需要做额外的配置。registry的用户名密码文件可以通过htpasswd来生成:

      mkdir /opt/registry-var/auth/  
      docker run --entrypoint htpasswd registry:2.4.1 -Bbn yoho 111111  >> /opt/registry-var/auth/htpasswd  
    

    上面这条命令是为yoho用户名生成密码为111111的一条用户信息,存在/opt/registry-var/auth/htpasswd文件里面,文件中存的密码是被加密过的。使用带用户权限的registry时候,容器的启动命令就跟上面不一样了,将之前的容器停掉并删除

      docker container stop registry-center(容器name,可以通过docker ps查看)
      docker container rm -v registry-center
    

    创建带用户认证的registry

    docker run -d \-p 5000:5000 \--restart=always \ --name registry-center \ -v /myregistry:/var/lib/registry \ -v /opt/registry-var/auth:/auth/ \ -e "REGISTRY_AUTH=htpasswd" \ -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \ -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \ registry

    这时,如果直接想查看仓库信息、pull或push都会出现权限报错。必须先使用docker login 命令来登录私有仓库:

      docker login 192.168.105.2:5000
    
posted @ 2018-05-15 11:33  MessChenly  阅读(153)  评论(0)    收藏  举报