the registry can be called from everywhere on https://registry.raphaelpiccolo.com/
basic auth & https
the registry can be called from the host itself on http://${vmip}:5000
no auth.
the registry can be called from the other containers on http://registry:5000
no auth.
the registry explorer will be accessible from here : https://webregistry.raphaelpiccolo.com/
basic auth & https
the docker compose file
registry:
restart: always
container_name: registry
image: registry:2
volumes:
- ./registry/data:/var/lib/registry
environment:
- REGISTRY_STORAGE_DELETE_ENABLED=true
labels:
- traefik.enable=true
- traefik.http.routers.registry.rule=Host(`registry.${DOMAIN}`)
- traefik.http.services.registry.loadbalancer.server.port=5000
- traefik.http.routers.registry.tls.certresolver=le
- traefik.http.routers.registry.entrypoints=websecure
- traefik.http.routers.registry.middlewares=securityheaders,admin
webregistry:
restart: always
container_name: webregistry
image: klausmeyer/docker-registry-browser
environment:
- DOCKER_REGISTRY_URL=https://registry.${DOMAIN}
- BASIC_AUTH_USER=admin
- BASIC_AUTH_PASSWORD=${PASSWORD}
labels:
- traefik.enable=true
- traefik.http.routers.webregistry.rule=Host(`webregistry.${DOMAIN}`)
- traefik.http.services.webregistry.loadbalancer.server.port=8080
- traefik.http.routers.webregistry.tls.certresolver=le
- traefik.http.routers.webregistry.entrypoints=websecure
- traefik.http.routers.webregistry.middlewares=securityheaders,admin
start all
docker-compose up -d
apt install gnupg2 pass
docker login -u admin -p ${PASSWORD} https://registry.raphaelpiccolo.com
docker pull ubuntu:16.04
docker tag ubuntu:16.04 registry.raphaelpiccolo.com/my-ubuntu
docker push registry.raphaelpiccolo.com/my-ubuntu
docker image remove ubuntu:16.04
docker image remove registry.raphaelpiccolo.com/my-ubuntu
docker pull registry.raphaelpiccolo.com/my-ubuntu
https://registry.raphaelpiccolo.com/v2/_catalog
https://registry.raphaelpiccolo.com/v2/my-ubuntu/tags/list
--dry-run makes it do nothing
docker exec -it registry bin/registry garbage-collect --dry-run /etc/docker/registry/config.yml
REGISTRY_STORAGE_DELETE_ENABLED=true
get image id
curl -v -H 'Accept: application/vnd.docker.distribution.manifest.v2+json' http://registry.raphaelpiccolo.com/v2/my-ubuntu/manifests/latest
In response headers, you have docker-content-digest: sha256:xxx
now delete it
curl -v -XDELETE http://registry.raphaelpiccolo.com/v2/my-ubuntu/manifests/sha256:d0c7239b63de7b92dc1b2bec3e790088c8541f33cd0a71504b4fdeb624087879
run garbage collector
docker exec -it registry bin/registry garbage-collect /etc/docker/registry/config.yml
remove the repo for real (the only way to remove it from the list of repos)
rm -rf ../registry/data/docker/registry/v2/repositories/