Docker Community Forums

Share and learn in the Docker community.

Docker registry sitll shows the _catalog under non-secured connection

Hi, I’m a newbie to the private docker registry. Testing it since a week ago.

I have set it up locally via running the registry image with a volume for persistence. Like this:

docker run -d -p 5000:5000 --restart=always --name registry --mount source=registry,target=/var/lib/registry registry:2

As I have not yet setup the TLS credentials, I expect it working from the localhost interface but not any other network.

After successfully pushing an alpine image to my private repo for testing, I can see the pull behaviour properly working (host IP is 192.168.2.55):

# localhost works (as expected)
xavi@bromo:~$ docker pull 127.0.0.1:5000/alpine
Using default tag: latest
latest: Pulling from alpine
Digest: sha256:39eda93d15866957feaee28f8fc5adb545276a64147445c64992ef69804dbf01
Status: Image is up to date for 127.0.0.1:5000/alpine:latest

# network fails (as expected)
xavi@bromo:~$ docker pull 192.168.2.55:5000/alpine
Using default tag: latest
Error response from daemon: Get https://192.168.2.55:5000/v2/: http: server gave HTTP response to HTTPS client

Nevertheless, when I get the catalog manually via curling the API, I can see this:

xavi@bromo:~$ curl 127.0.0.1:5000/v2/_catalog
{"repositories":["alpine"]}
xavi@bromo:~$ curl 192.168.2.55:5000/v2/_catalog
{"repositories":["alpine"]}

Question

Why does this happen? Shouldn’t the same behaviour of pulling be applied to all the operations?