docker私有仓库的创建使用和认证

1、搭建本地私有仓库registry v2(Docker Registry 2.0版本在安全性和性能上做了诸多优化,并重新设计了镜像的存储的格式。Docker目前1.6之后支持V2)

  1)构建私有仓库:docker run -d -p 5000:5000 --restart=always --name registry -v /mnt/registry:/var/lib/registry registry:2

  -d:表示后台运行该容器

  -p:宿主机端口映射到容器端口

  --restart:容器启动后自动启动私有镜像仓库

  -v:容器挂载到宿主机上

  2)为要上传的镜像设置标签:docker tag hello-world:latest localhost:5000/my-hello-world

  3)推送打好的标签镜像到私有仓库: docker pull localhost:5000/my-hello-world

  4)通过地址访问的方式查看私有仓库是否有上传的镜像文件:http://IP:5000/v2/my-hello-world(自己添加标签的镜像名称)/tags/list

curl http://192.168.1.58:5000/v2/_catalog  查看仓库信息

2、配置私有仓库认证(上面上传镜像时候都没有登录信息验证)

  1)生成证书: mkdir registry && cd registry && mkdir certs && cd certs

        openssl req -x509 -days 3650 -subj '/CN=192.168.1.58:5000/' -nodes -newkey rsa:2048  -keyout domain.key -out domain.crt

    -x509:是一个自签发证书的格式

    -days:证书的有效性

    rsa:算法及长度

   2)生成用户名和密码(一直测试registry2的不知道为什么一直不行,安装中出现WARNING: IPv4 forwarding is disabled. Networking will not work.问题,问题汇总里面有解决)

    cd .. && mkdir auth

    docker run --entrypoint htpasswd registry:2.5 -Bbn abc abc123 > /root/registry/auth/htpasswd

启动docker的私有仓库:

docker run -d \
  -p 5000:5000 \
  --restart=always \
  --name registry \
  -v "$(pwd)"/auth:/auth \
  -e "REGISTRY_AUTH=htpasswd" \
  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
  -v "$(pwd)"/certs:/certs \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=certs/domain.crt \
  -e REGISTRY_HTTP_TLS_KEY=certs/domain.key \
  registry:2.5

   3)docker registry配置访问接口

    sudo mkdir -p /etc/docker/certs.d/192.168.1.58:5000

    sudo cp certs/domain.crt /etc/docker/certs.d/192.168.1.58:5000

  4)docker registry私有仓库使用登记

  在终端/etc/docker/daemon.json文件中添加如下内容(有内容的话逗号隔开,去掉大口号)

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

  5)重启并加载docker配置文件

    systemctl restart docker

 

测试:docker login ip:端口 方式测试登录

      镜像打标签:docker tag hello-world:latest 192.168.1.58:5000/myhelloworld

    推送:docker push 192.168.1.58:5000/myhelloworld

查看仓库的目录挂载: /mnt/registry/docker/registry/v2/repositories

    

 

 

 

 

posted on 2021-11-03 20:20  bruce.sharp  阅读(402)  评论(0)    收藏  举报