The other day I had to install Docker at work, aka behind a corporate proxy (on Windows 8).
While the docker installer is stand-alone and all is good, dealing with the VM is a different matter… The problem popped up when I tried to create a Django image and
pip install failed miserably. To get around, you need to create a docker machine:
docker-machine create -d virtualbox \ --engine-env HTTP_PROXY=http://example.com:8080 \ --engine-env HTTPS_PROXY=https://example.com:8080 \ --engine-env NO_PROXY=example2.com \ default
You also need to pass in the proxy as a build argument to
docker build --build-arg https_proxy="http://example.com:8080"
You can also pass the build argument to
docker-compose but, in this case, you need to specify the services.
To make my life easier, I’ve built an alias for my bash command line:
alias docker_build="docker build \ --build-arg http_proxy=$http_proxy \ --build-arg https_proxy=$https_proxy \ --build-arg no_proxy=$no_proxy \ --build-arg HTTP_PROXY=$http_proxy \ --build-arg HTTPS_PROXY=$https_proxy \ --build-arg NO_PROXY=$no_proxy"
$..._proxy are my environment variables.
Note: I’ve noticed it works also if you have a user/password-type proxy authentication. In this case, your environment variable:
would also be OK.