您的位置:首页 > 运维架构 > Docker

在有密码且Root证书替换的Proxy环境里使用docker-machine

2016-09-08 00:00 411 查看

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

这才好了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐