1

我正在尝试找到一些方法来同时使用我公司的 VPN 和 Docker-Machine;目前,我不能同时使用两者,否则如果我在任何时候都使用 VPN,那么在我关闭 VPN 并重新启动我的机器之前,我无法做任何与 Docker 相关的事情。具体来说,以下命令只是挂起并超时:

eval $(docker-machine env dev)

dev我的 Docker-Machine VM 的名称在哪里。

没有该命令,涉及 Docker的任何操作都无法工作eval,并且该命令在连接到 VPN 时甚至之后都无法正常工作。eval我读过使用旧版本的 VirtualBox(4.3.1 或类似版本)可以解决此问题,但不幸的是,Docker Toolbox 始终确保安装了最新的 VirtualBox。我正在使用 Docker Toolbox 1.8.1b 和 VirtualBox 5.0.2。有没有办法让 Cisco AnyConnect VPN 和 Docker-Machine 一起工作?似乎主要问题是 AnyConnect 搞乱了网络路由。

4

2 回答 2

2

我确信一个聪明的 bash 人可以解释原因,但是eval "$(docker-machine env dev)"(注意引号)是(由 Docker 推荐的)设置DOCKER环境变量的方法。

于 2015-10-02T19:21:11.500 回答
0

此答案适用于以下发现:https ://stackoverflow.com/a/26913705/3471672

我在 Mac OS X (Docker v1.10) 上使用工具箱,来自:https ://docs.docker.com/mac/step_one/

看起来问题是通过启动 Cisco AnyConnect 引入的防火墙规则。下面显示了引入的问题以及如何解决它:

  1. 确保 Cisco AnyConnect 已停止 (!)
  2. 确保您看不到防火墙规则问题;验证,运行(使用工具箱,在 Docker 快速启动终端):
    • $ sudo ipfw -a list | grep "deny ip"
  3. 创建名为 eg: dev的 docker 机器,运行:
    • $ docker-machine create --driver virtualbox dev
  4. 验证机器是否可以访问,运行例如:
    • $ docker-machine ls
  5. 开始 Cisco AnyConnect: --- 问题在这里介绍 ---
  6. 验证机器无法再访问,运行:
    • $ docker-machine ls
  7. 您将看到如下错误:
    • Unable to query docker version [...] connect: permission denied
  8. 检查已引入的新防火墙规则,运行:
    • $ sudo ipfw -a list | grep "deny ip"
  9. 你会得到类似的东西:
    • 00411 72 6160 deny ip from any to any keep-state
  10. 根据第一个数字(在这种情况下:00411),删除规则,运行例如:
    • $ sudo ipfw delete 00411
  11. 验证机器是否可以再次访问,运行:
    • $ docker-machine ls
  12. 现在您可以再次成功地执行以下操作:
    • $ eval $(docker-machine env dev)
    • $ docker ps
    • 等等
于 2016-02-12T15:46:46.243 回答