patterndockerMinor
Private docker registry that attempts a pull-through on images not found locally
Viewed 0 times
pulldockerregistrylocallyprivatefoundthatattemptsthroughimages
Problem
I have a docker registry image running on a local network with the command
but enabling the caching of images stored in Docker Hub requires one to pull the image, and push it in the local registry
Is there a way to configure the docker registry to do automatic pull-through if the image requested is not available locally while preserving the ability to push local images?
from this article:
The catch is that you will probably run the public Registry as a
mirror or as a regular registry, so you will probably end up running
two containers — one as a mirror, another as your local Registry (not
a big deal). In artifactory you can set up as many registries as you
want (local or remote), each with its own URL. Or you can “mix” them
on a single URL with a virtual registry (if you think it is a good
idea).
docker run -d -p 5000:5000 --restart=unless-stopped --name registry -v /mnt/part_sdb/registry:/var/lib/registry registry:2but enabling the caching of images stored in Docker Hub requires one to pull the image, and push it in the local registry
Is there a way to configure the docker registry to do automatic pull-through if the image requested is not available locally while preserving the ability to push local images?
from this article:
The catch is that you will probably run the public Registry as a
mirror or as a regular registry, so you will probably end up running
two containers — one as a mirror, another as your local Registry (not
a big deal). In artifactory you can set up as many registries as you
want (local or remote), each with its own URL. Or you can “mix” them
on a single URL with a virtual registry (if you think it is a good
idea).
Solution
Yes, it is possible. The entire subject is discussed in Registry as a pull through cache, from where the below quotes are taken.
Basically you need to configure the cache as a proxy for Docker Hub:
Configure the cache
To configure a Registry to run as a pull through cache, the addition
of a
In order to access private images on the Docker Hub, a username and
password can be supplied.
Of course, you also need to configure your docker daemon to use your local cache (but I presume that may be already done from the context of the question):
Configure the Docker daemon
Either pass the
manually, or edit
Basically you need to configure the cache as a proxy for Docker Hub:
Configure the cache
To configure a Registry to run as a pull through cache, the addition
of a
proxy section is required to the config file.In order to access private images on the Docker Hub, a username and
password can be supplied.
proxy:
remoteurl: https://registry-1.docker.io
username: [username]
password: [password]Of course, you also need to configure your docker daemon to use your local cache (but I presume that may be already done from the context of the question):
Configure the Docker daemon
Either pass the
--registry-mirror option when starting dockerdmanually, or edit
/etc/docker/daemon.json and add theregistry-mirrors key and value, to make the change persistent.{
"registry-mirrors": ["https://"]
}Code Snippets
proxy:
remoteurl: https://registry-1.docker.io
username: [username]
password: [password]{
"registry-mirrors": ["https://<my-docker-mirror-host>"]
}Context
StackExchange DevOps Q#2511, answer score: 1
Revisions (0)
No revisions yet.