Windows 7上公司代理后的Docker VM主机无法联系代理或更广泛的internet

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

欢迎来到另一个略有不同的风格的“docker机器背后的企业代理”

我相当肯定这不是对这个主题领域的其他问题的完全重复,已经花了大量时间尝试在这里找到的其他潜在解决方案,但没有任何效果,但由于我完全被难住了,我们开始

症状:

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任何东西。 感觉这在虚拟机中是一个糟糕的网络配置,因为流量无法流出,但我不确定到底是什么问题

我是如何来到这里的:

  • 使用VirtualBox+NDIS6驱动程序在Windows 7上安装Docker Toolbox 18.03.0-ce
  • 将代理环境变量添加到Docker工具箱的
    start.sh
    ,Docker Quickstart终端使用:

  • 启动快速启动终端。这似乎很顺利: 对于默认机器,代理详细信息也会写入
    config.json

  • 然后,在执行eval
    $(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,不幸的是,这没有效果