zoukankan      html  css  js  c++  java
  • Docker私有仓库操作----命令行

    查看所有镜像

    http://10.206.29.162:5000/v2/_catalog

    {"repositories":["dashboard","glusterfs","kubernetes-dashboard-amd64","metrics-scraper","nacos-server","nginx"]}
    查看单个镜像信息

    http://ip:port/v2/image_name/tags/list

     浏览器访问 http://xxx.xxx.xxx.xxx:5000/v2/nginx/tags/list
    
    {"name":"nginx","tags":["latest"]}
    拉取镜像清单
    http://xxx.xxx.xxx.xxx:5000/v2/nginx/manifests/latest

     


    启动
    docker run -d -v /app/registry:/var/lib/registry -p 5000:5000 -e REGISTRY_STORAGE_DELETE_ENABLED=true --restart=always --name registry registry:v1.0
    删除

    方案一:

    用官方模块delete_docker_registry_image

    1、添加 模块 delete_docker_registry_image

    官方操作文档:https://github.com/burnettk/delete-docker-registry-image

    2、删除之前需要先添加环境变量

    [root@1a01vlb5970zzzz repositories]# cat /etc/profile|grep regis
    export REGISTRY_DATA_DIR=/app/registry/docker/registry/v2

    注意:如果需要远程删除,就需要在远程用户的HOME目录的.bashrc中添加需要的环境变量

    delete_docker_registry_image --image wurstmeister/kafka
    # 删除镜像之后如果不重启,重新上传会报层数据已存在,必须重启才能重新上传
    systemctl restart docker   

    方案二:

    # --header "Accept: application/vnd.docker.distribution.manifest.v2+json" 这个header 是必须要加的,不加的话Content-Type 是v1+prettyjws,获取的digest是错误的!!
    headers = {'Accept':'application/vnd.docker.distribution.manifest.v2+json'}
    url = "http://" + self.registry + "/v2/" + args['image_name'] +'/manifests/' + args['tag']
    print(url)
    getres =requests.get(url,headers=headers)
    digest = getres.headers['Docker-Content-Digest']
    deleteurl = "http://" + self.registry + "/v2/" + args['image_name'] +'/manifests/' + digest
    delres = requests.delete(deleteurl,headers=headers)
    print(delres.content)
    print(delres.headers)
    print(delres.status_code)
    ​

    # 垃圾回收  
    docker exec -it da33dd273367 bin/registry garbage-collect /etc/docker/registry/config.yml &>/dev/null
     

     

    私有仓库删除后重新上传的问题

    问题:重新上传报错层存在,并且查询私有仓库镜像发现没上传成功

    [root@1a01vlb5970zzzz repositories]# delete_docker_registry_image --image nginx
    INFO     [2020-08-19 15:37:42,598]  Deleting /app/registry/docker/registry/v2/blobs/sha256/23/231d40e811cd970168fb0c4770f2161aa30b9ba6fe8e68527504df69643aa145
    INFO     [2020-08-19 15:37:42,599]  Deleting /app/registry/docker/registry/v2/blobs/sha256/18/189cce606b29fb2a33ebc2fcecfa8e33b0b99740da4737133cdbcee92f3aba0a
    INFO     [2020-08-19 15:37:42,599]  Deleting /app/registry/docker/registry/v2/blobs/sha256/be/bee5d581ef8bfee2b5a54685813ba6ad9bbe922115d7aef84a21a9dbfcc2d979
    INFO     [2020-08-19 15:37:42,599]  Deleting /app/registry/docker/registry/v2/blobs/sha256/00/000eee12ec04cc914bf96e8f5dee7767510c2aca3816af6078bd9fbe3150920c
    INFO     [2020-08-19 15:37:42,604]  Deleting /app/registry/docker/registry/v2/blobs/sha256/eb/eb22865337de3edb54ec8b52f6c06de320f415e7ec43f01426fdafb8df6d6eb7
    INFO     [2020-08-19 15:37:42,609]  Deleting /app/registry/docker/registry/v2/repositories/nginx
    [root@1a01vlb5970zzzz repositories]# docker push 10.206.52.220:5000/nginx:latest
    The push refers to repository [10.206.52.220:5000/nginx]
    4fc1aa8003a3: Layer already exists 
    5fb987d2e54d: Layer already exists 
    831c5620387f: Layer already exists 
    latest: digest: sha256:189cce606b29fb2a33ebc2fcecfa8e33b0b99740da4737133cdbcee92f3aba0a size: 948
    [root@1a01vlb5970zzzz repositories]# curl -X GET http://10.206.52.220:5000/v2/_catalog
    {"repositories":["gluster/gluster-centos","kubernetesui/metrics-scraper","nacos-server","quay-mirror.qiniu.com/coreos/flannel","wurstmeister/kafka"]}
    ​

    解决方案:

    重启

    systemctl restart docker
     
  • 相关阅读:
    函数节流和防抖
    前端优化
    webpack模块
    link和@import的区别
    BFC--CSS
    javaoop_破解jdbc
    javaoop反射
    java-oop集合与泛型
    java中几个小遗漏
    java异常处理和日志管理
  • 原文地址:https://www.cnblogs.com/cherylgi/p/13534412.html
Copyright © 2011-2022 走看看