Caveats before I start:
- This works on Windows 10, Docker for Windows, Version 17.06.0-ce-win19 (this did NOT work for a colleague with 17.03-ce-win12)
- Only tested in an environment with an NTLMv2-authenticating proxy that CNTLM was able to connect to.
- CNTLM is a binary downloaded from SourceForge and has not been updated in over five years!
If the DummyDesperatePoitras virtual switch is available, use that IP address for CNTLM’s listening AND as the proxy address for Docker:
(in PowerShell, don’t need to be admin):
(get-netipaddress -InterfaceAlias "vEthernet (DummyDesperatePoitras)*" -AddressFamily IPv4).IPAddress
(something like 169.254.10.12)
Use that IP address in your cntlm config:
Listen 169.254.10.12 3128
Then set your http_proxy and https_proxy environment variables in Windows to the following in order for other command line tools to work:
Finally, change your Docker settings:
Web Server (HTTP):
check the box “Use same for both”.
Switch from “Basic” to “Advanced” to get the daemon.json for editing. Add your company’s internal domains and one or more DNS servers to the daemon.json (watch the curly braces and commas!)
Your result should look like this, where 10.0.0.2 is an internal DNS server, and myawesomecompany.com is your internal domain: