连接到Cisco AnyConnect(Mac OS X)时,Docker机器无法运行

时间:2015-09-16 19:01:35

标签: macos vpn docker-machine

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

eval $(docker-machine env dev)

其中dev是我的Docker-Machine VM的名称。

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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. 创建名为例如: dev 的泊坞机,运行:
    • $ docker-machine create --driver virtualbox dev
  4. 验证机器可以访问,运行例如:
    • $ docker-machine ls
  5. START 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