在Windows 7中通过VPN连接时连接到docker机器

时间:2016-12-05 11:18:13

标签: docker-machine docker-toolbox

我在Windows 7上运行docker-machine作为docker工具箱的一部分

当我跑步时

> docker-machine env
SET DOCKER_TLS_VERIFY=1
SET DOCKER_HOST=tcp://192.168.99.100:2376
SET DOCKER_CERT_PATH=...\.docker\machine\machines\default
SET DOCKER_MACHINE_NAME=default

配置shell后,我可以毫无问题地与docker进行交互。

当我通过VPN连接到不同的网络时出现问题。

当我使用

> tracert 192.168.99.100

我可以看到这个IP被VPN截获,这就是我在运行

时遇到异常的原因
> docker-machine env
Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.100:2376": dial tcp 192.168.99.100:2376: i/o timeout

有没有办法按如下方式更改DOCKER_HOST?

SET DOCKER_HOST=tcp://127.0.0.1:2376

感谢您的帮助!

3 个答案:

答案 0 :(得分:9)

启动docker quickstart终端而不连接VPN。然后按照以下步骤操作:

  1. docker-machine stop machine-name
  2. VBoxManage modifyvm“machine-name”--natpf1“machine-name,tcp ,, 2376,,2376”
  3. docker-machine start machine-name
  4. 假设您的机器名是默认的,那么命令将是:VBoxManage modifyvm“default”--natpf1“default,tcp ,, 2376,,2376”

    1. export DOCKER_HOST =“tcp:// localhost:2376”
    2. 导出DOCKER_TLS_VERIFY =“0”
    3. alias docker =“docker --tlsverify = false”
    4. 现在连接到VPN。你已准备好出发。 Docker将像往常一样开始工作。

答案 1 :(得分:0)

在我的Docker终端中:

$ docker-machine env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="XXXXXX\.docker\machine\machines\default"
export DOCKER_MACHINE_NAME="default"
export COMPOSE_CONVERT_WINDOWS_PATHS="true"
# Run this command to configure your shell:
# eval $("D:\Program Files\Docker Toolbox\docker-machine.exe" env)

要覆盖DOCKER_HOST环境变量:

$ export DOCKER_HOST="tcp://127.0.0.1:2376"

请参阅docker-and-cisco-anyconnect-vpn。这篇文章可能对您有帮助。

答案 2 :(得分:0)

另一种选择是在路由表中创建一个新条目,该条目将覆盖VPN软件创建的条目。

首先,找到VirtualBox仅主机网络接口的名称

netsh int ip show ipaddresses

在我的计算机上,该接口名为“ vbox2”。现在,指定到192.168.99.100的docker计算机的所有流量都应通过“ vbox2”接口发送。

netsh int ip add route 192.168.99.0/24 interface=vbox2 store=persistent

相对于127.0.0.1解决方案,我更喜欢这种方法,因为我不必使用VBoxManage Modifyvm转发任何新端口。