An open API service indexing awesome lists of open source software.

https://github.com/byrnedo/docker-reg-tool

Docker registry cli tool, primarily for deleting images.
https://github.com/byrnedo/docker-reg-tool

docker docker-registry docker-registry-cleanup

Last synced: 11 months ago
JSON representation

Docker registry cli tool, primarily for deleting images.

Awesome Lists containing this project

README

          

# Docker Registry Tool

Small bash script to do repetitive things with docker registry > 2.1 ( I think, whichever version supports delete by manifest)

## Dependencies

[Jq](https://stedolan.github.io/jq/)

```
Usage:

./docker_reg_tool REGISTRY_BASE_URL ACTION [OPTIONS..]

Actions:

- list list repos

- list REPO list tags for repo

- delete REPO TAG delete tag for repo

Example:

List all repos
/$ ./docker_reg_tool https://registry.my.domain list

List tags for one repo
/$ ./docker_reg_tool https://registry.my.domain list some-repo

Delete tag for a repo
/$ ./docker_reg_tool https://registry.my.domain delete some-repo some-tag

```

If you want something more fully featured then check out [crane](https://github.com/google/go-containerregistry/blob/main/cmd/crane/doc/crane.md).

## Docker config file location

If your config.json location is not ~/.docker/config.json, you can define the location with the DOCKER_CONFIG environment variable.

DOCKER_CONFIG="/your/path/to/docker/config.json" ./docker_reg_tool ...

## Credentials

...are sniffed out of ~/.docker/config.json. So you need to do `docker login...` before you can use this tool.

They can also be set with the `BASIC_AUTH` environment variable.

BASIC_AUTH=user:pass ./docker_reg_tool ...

Only been tested on Basic auth.

## Insecure Registry

Set the `INSECURE_REGISTRY` to true;

INSECURE_REGISTRY=true ./docker_reg_tool ...

## Registry Settings

In order for this to work, the registry needs to be running with
If docker image:
```
REGISTRY_STORAGE_DELETE_ENABLED="true"
```
Or in the config file:
```
storage:
delete:
enabled: true
```

Also, the size will not decrease until the garbage collector runs.
You can trigger it manually with:
```
docker exec registry /bin/registry garbage-collect -m=true /etc/docker/registry/config.yml
```

## Debugging

Set the `TRACE` environment variable to true to turn on `set -x`

TRACE=true ./docker_reg_tool ...

## Docker Image

See https://hub.docker.com/r/byrnedo/reg-tool/