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?