Way to delete the images from Private Docker Registry

I have a Private Docker Registry set up and i have pushed some images from other machine to this registry.
Its a V2 registry.
I don’t know a novel way to delete the images from repositories since these pushed images doesn’t get listed in CLI for “docker images”.

Can anyone suggest me the proper way to delete those images from the disk?

  • docker within docker, post http error
  • Cannot connect to the Docker daemon. Is 'docker -d' running on this host?
  • Docker error: client and server don't have same version
  • How to use docker remote api to create container?
  • Jenkinsfile docker
  • How to run Eclipse with Docker on Windows using Boot2Docker?
  • Appreciate a lot for answer.

    Thanks

  • Docker log file not created
  • Multiple NIC and Docker containers
  • Docker + Nginx deleted folder issue
  • Dockerfile doesn't run the CMD if the ENTRYPOINT isn't finished
  • “Hello World” with official nginx and php docker images. Howto?
  • Redis memory usage, ZSET and docker
  • 2 Solutions collect form web for “Way to delete the images from Private Docker Registry”

    Currently you cannot delete an image from a docker registry without an external tool. The easiest way to do so would be to use this script to do so, keeping in mind that it does require downtime.

    I have posted same answer to other question. Maybe it would be useful for you.


    I’ve faced same problem with my registry then i tried the solution listed below from a blog page. It works.

    Step 1: Listing catalogs

    You can list your catalogs by calling this url:

    http://YourPrivateRegistyIP:5000/v2/_catalog
    

    Response will be in the following format:

    {
      "repositories": [
        <name>,
        ...
      ]
    }
    

    Step 2: Listing tags for related catalog

    You can list tags of your catalog by calling this url:

    http://YourPrivateRegistyIP:5000/v2/<name>/tags/list
    

    Response will be in the following format:

    {
    "name": <name>,
    "tags": [
        <tag>,
        ...
    ]
    

    }

    Step 3: List manifest value for related tag

    You can run this command in docker registry container:

    curl -v --silent -H "Accept: application/vnd.docker.distribution.manifest.v2+json" -X GET http://localhost:5000/v2/<name>/manifests/<tag> 2>&1 | grep Docker-Content-Digest | awk '{print ($3)}'
    

    Response will be in the following format:

    sha256:6de813fb93debd551ea6781e90b02f1f93efab9d882a6cd06bbd96a07188b073
    

    Run the command given below with manifest value:

    curl -v --silent -H "Accept: application/vnd.docker.distribution.manifest.v2+json" -X DELETE http://127.0.0.1:5000/v2/<name>/manifests/sha256:6de813fb93debd551ea6781e90b02f1f93efab9d882a6cd06bbd96a07188b073
    

    Step 4: Delete marked manifests

    Run this command in your docker registy container:

    bin/registry garbage-collect  /etc/docker/registry/config.yml  
    

    Here is my config.yml

    root@c695814325f4:/etc# cat /etc/docker/registry/config.yml
    version: 0.1
    log:
      fields:
      service: registry
    storage:
        cache:
            blobdescriptor: inmemory
        filesystem:
            rootdirectory: /var/lib/registry
        delete:
            enabled: true
    http:
        addr: :5000
        headers:
            X-Content-Type-Options: [nosniff]
    health:
      storagedriver:
        enabled: true
        interval: 10s
        threshold: 3
    
    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.