Clean the Docker Registry by removing untagged repositories https://github.com/ricardobranco777/clean_registry
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kaszpir c150d6f288 Add missing .gitingore 6 years ago
.gitignore Add missing .gitingore 6 years ago
Dockerfile Support docker-py 3.0.x 6 years ago
LICENSE Initial commit 6 years ago
README.md Fix issues with standalone run (dependencies), update readme. 6 years ago
clean_registry.py Fix issues with standalone run (dependencies), update readme. 6 years ago
requirements.txt Fix issues with standalone run (dependencies), update readme. 6 years ago

README.md

clean_registry

Clean the Docker Registry by removing untagged repositories and running the garbage collector in Docker Registry >= 2.4.0

The optional -x flag may be used to remove the specified repositories or tagged images.

WARNING:

Make backups of target docker-registry/containers/tags to avoid loosing data.

This script stops the Registry container during cleanup to prevent corruption, making it temporarily unavailable to clients.

This script assumes the filesystem storage driver.

Running standalone

This script may be run as stand-alone (on local setups) or dockerized (which supports both local and remote Docker setups). To run stand-alone, the best is to run in virtualenv and install required packages via pip:

virtualenv --python=python3 .venv
. .venv/bin/activate
pip3 install --upgrade pip
pip3 install -r requirements.txt

You may need to execute above commands as privileged user to access docker service (sudo + activate virtualenv).

Usage

clean_registry.py [OPTIONS] CONTAINER [REPOSITORY[:TAG]]...
Options:
        -x, --remove    Remove the specified images or repositories.
        -q, --quiet     Suppress non-error messages.
        -V, --version   Show version and exit.

Docker usage with local Docker setup

docker run --rm --volumes-from CONTAINER -v /var/run/docker.sock:/var/run/docker.sock ricardobranco/clean_registry [OPTIONS] CONTAINER [REPOSITORY[:TAG]] ...

Docker usage with remote Docker setup

Make sure to read about remote Docker setup.

docker run --rm --volumes-from CONTAINER -e DOCKER_HOST -e DOCKER_TLS_VERIFY=1 -v /root/.docker:/root/.docker ricardobranco/clean_registry [OPTIONS] CONTAINER [REPOSITORY[:TAG]]...

Note:

Paths other than /root/.docker path may be specified with the **DOCKER_CERT_PATH** environment variable. In any case, your ~/.docker/*.pem files should be in the server to be able to run as a client against itself.