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

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里。

  1. 在Browser或者certmgr里把Proxy Server的证书导出成 "BASE64 cer",然后改后缀名为PEM。

  2. 把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
    

    这才好了。

转载于:https://my.oschina.net/osexp2003/blog/744529

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值