Docker pull proxy
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
Paolo Asperti 9daf7b608c
Initial release
2 years ago
LICENSE Initial release 2 years ago
README.md Initial release 2 years ago
docker-puller.sh Initial release 2 years ago

README.md

docker-puller

This implements a docker images proxy on your local network. In fact, you need to start a local registry and run this script to fetch the images (instead of docker pull).

./docker-puller.sh ubuntu:18.04

This script will:

  • check if the image exists on the official docker registry
  • check if the image exists on the local registry
  • if so, it will download the image from the local registry
  • download the image from the official registry
  • update the image on the local registry

If the local registry image is the same, the download will finish instantly, otherwise the local image will be used as a base to speedup the download.

Dependencies

Be sure to have these dependencies installed:

sudo apt install -y curl grep coreutils docker-ce-cli

It's very likely that you already have these installed.

Configuration

Just edit the script and set these variables:

REGISTRY=127.0.0.1:5000
PROTOCOL=http

They should point to the correct registry, probably on a machine in your local network.

Configure the registry

If you want to start a registry container on a machine on a local network, you just need to run the following on that machine:

$ docker run -d -p 5000:5000 --restart=always --name registry registry

For more info, take a look at this: Deploying a docker registry

Allow docker to use an insecure registry

If you don't have SSL in front if your registry (that's usually the case for local registries), then you probably need to tell the docker daemon on your machine to allow an "insecure" registry.

Just edit /etc/docker/daemon.json like this:

{
  "insecure-registries" : ["127.0.0.1:5000"]
}

For more info, take a look at this: Test an insecure registry