Docker behind a proxy

Working behind a proxy is always a bit of a pain. Luckly if you are doing so work with Docker behind a proxy you've come to the right place. Below steps should allow your docker instance to shot out to the internet to get images. Note, I will go about how to do this with systemd. You will need to adapt this slightly if using a different init system.

Config

First make the following directory

mkdir /etc/systemd/system/docker.service.d

Then create a http-proxy.conf file under this directory. This conf file will hold the proxy details. The content as follows:

[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80/"

Take note, if you have a local docker registry that you don't want to go through the proxy you can set a no proxy option like so:

[Service]
Environment="NO_PROXY=localhost,127.0.0.0/8,docker-registry.local.com"

Essentially place the dns names or ips of the address you don't want to go through the proxy.

Once this is done simply flush your changes:

sudo systemctl daemon-reload

You can verify these changes have been applied via:

systemctl show --property Environment docker

Finally restart docker

systemctl restart docker

You should now be able to pull your images from your proxy.