Windows 7上公司代理后的Docker VM主机无法联系代理或更广泛的internet
欢迎来到另一个略有不同的风格的“docker机器背后的企业代理” 我相当肯定这不是对这个主题领域的其他问题的完全重复,已经花了大量时间尝试在这里找到的其他潜在解决方案,但没有任何效果,但由于我完全被难住了,我们开始 症状:Windows 7上公司代理后的Docker VM主机无法联系代理或更广泛的internet,docker,proxy,boot2docker,docker-toolbox,Docker,Proxy,Boot2docker,Docker Toolbox,欢迎来到另一个略有不同的风格的“docker机器背后的企业代理” 我相当肯定这不是对这个主题领域的其他问题的完全重复,已经花了大量时间尝试在这里找到的其他潜在解决方案,但没有任何效果,但由于我完全被难住了,我们开始 症状: root@default:/home/docker# docker run hello-world Unable to find image 'hello-world:latest' locally docker: Error response from daemon: Ge
root@default:/home/docker# docker run hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/:
proxyconnect tcp: dial tcp: lookup dev-webaccess on 10.0.2.3:53: no such host.
See 'docker run --help'.
这看起来像是试图在VM内解析我的代理(dev webaccess
),但失败了。
看起来我也不能在虚拟机之外ping任何东西。
感觉这在虚拟机中是一个糟糕的网络配置,因为流量无法流出,但我不确定到底是什么问题
我是如何来到这里的:
start.sh
,Docker Quickstart终端使用:
config.json
:
$(docker machine env default)
之后,我们可以ssh到默认机器:
docker run hello world
,乐趣就开始了:
默认机器
中的路由
的输出:
因此,最后一个问题是:这里显示的代理或网络配置是否有任何东西可以解释为什么流量无法从virtualbox默认机器
到我的代理和更广泛的互联网?
从我非网络化的角度看,它看起来好像流量试图通过eth0离开虚拟机,并且根本无法到达任何地方
我很高兴被告知我是一个白痴,在这里错过了一些显而易见的东西……我似乎已经解决了这个问题,尽管我不能假装知道这到底是为什么解决了这个问题。事实上,这有点令人惊讶,只是我在这里读到的一个凄凉的“我会尝试一切”的改变
在C:\Users\user.name\.docker\machine\machines\default\config.json
中,我有以下内容:
"HostOptions": {
"Driver": "",
"Memory": 0,
"Disk": 0,
"EngineOptions": {
"ArbitraryFlags": [],
"Dns": null,
"GraphDir": "",
"Env": [
"HTTP_PROXY=http://user.name:password@dev-webaccess:8080",
"HTTPS_PROXY=https://user.name:password@dev-webaccess:8080"
],
我刚刚删除了显式协议(http://,https://),做了一个docker机器默认设置
,瞧!我的虚拟机像梦一样工作:
"HostOptions": {
"Driver": "",
"Memory": 0,
"Disk": 0,
"EngineOptions": {
"ArbitraryFlags": [],
"Dns": null,
"GraphDir": "",
"Env": [
"HTTP_PROXY=user.name:password@dev-webaccess:8080",
"HTTPS_PROXY=user.name:password@dev-webaccess:8080"
],
如果有人能解释为什么会这样,我很想知道。HTTPS\U代理也应该是http://....bcoz 它在同一端口8080上运行。。。另外,在代理url@kakabali中添加用户名和密码凭据在代理url中,但由于明显的原因,我将其删除。代理url中提到的端口8080是代理接受传入连接的端口,即端口8080在某些远程机器上使用,而不是在本地或vm afaik内部。在https\u代理中使用http而不是https,不幸的是,这没有效果