Docker behind proxy

Quante volte ci è capitato di dover impazzire su configurazioni strane perchè il nostro ambiente è dietro ad un proxy server?

Nell'avventura di oggi mi sono scontrato sulle politiche del proxy in sella alla balena di Docker navigando nel mare di CentOS 7.

Come uscirne quindi dall'empasse? leggendo la documentazione di Docker, certamente.

Configuration

Per prima cosa è necessario creare una folder sotto

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

Ora creiamo il file http-proxy.conf e aggiungiamo la variabile d'ambiente HTTP_PROXY

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

Se abbiamo un registry interno che non ha necissità di contattare un proxy per uscire, è possibile estendere la configurazione escludendo le rotte con la variabile NO_PROXY

Environment="HTTP_PROXY=http://proxy.example.com:80/"
Environment="NO_PROXY=localhost,127.0.0.0/8,docker-registry.somecorporation.com"

Salviamo e ricarichiamo le impostazioni

$ sudo systemctl daemon-reload

Verifichiamo quindi la configurazione con

$ sudo systemctl show --property Environment docker
Environment=HTTP_PROXY=http://proxy.example.com:80/

Restatiamo Docker

$ sudo systemctl restart docker

https://docs.docker.com/config/daemon/systemd/