1. 解决HttpProxy密码自动输入问题
先用自己以前做的https://github.com/sjitech/proxy-login-automator工具,做个假的本机Proxy,通过它来和真的Proxy server打交道,这之中自动的插入密码。
node proxy-login-automator.js \
-local_host "*" \
-local_port 65525 \
-remote_host RealHost \
-remote_port 80 \
-usr ProxyUserIdHerer \
-pwd ProxyPasswordHere \
-as_pac_server true
而且HttpProxy Server提供的是PAC(Proxy auto configuration)文件,所以指定as_pac_server true。
然后访问一下Internet ,看看这个工具里显示说用什么临时端口来做那个范围的ip的Proxy,记住这个端口,例如65526。
-local_host "*" 指定很重要,因为我要侦听docker-machie的bridge网卡192.168.99.1。
2. 然后创建docker-machine。
这里设定HTTP_PROXY让docker虚拟机记住。
docker-machine create -d virtualbox \
--engine-env HTTP_PROXY=http://192.168.99.1:65526 \
--engine-env HTTPS_PROXY=http://192.168.99.1:65526 \
--engine-env N O_PROXY="localhost,127.0.0.1,192.168.99.*" \
--virtualbox-disk-size "100000" \
--virtualbox-cpu-count 2 \
--virtualbox-memory 1500 \
default
这样一搞,docker的确可以run了,但是,说不受信赖的内容,证书不接受什么的错误。原来是这个ProxyServer为了监控包括SSL通信的内容,替换了顶级证书做了中间人中转了。
3. 把ProxyServer的证书导入到docker-machine里。
-
在Browser或者certmgr里把Proxy Server的证书导出成 "BASE64 cer",然后改后缀名为PEM。
-
把PEM文件copy到docker-machine里。
docker-machine ssh <<<" cd /var/lib/boot2docker/ sudo mkdir certs sudo cp /c/Users/Download/THE_PEM_FILE.pem certs/ " docker-machine restart
这才好了。