Docker容器无法访问Cisco VPN后面的Internet

我的设置:

  • Linux Mint 20
  • Docker 版本 19.03.12
  • 思科 AnyConnect 4.3.05017

我的问题:

当我连接到我公司的 VPN 时,我无法通过我的 docker 容器访问互联网。例如运行 docker run -it ubuntu apt update 将失败并显示消息“Err:1 http://archive.ubuntu.com/ubuntu focus InRelease
解决“archive.ubuntu.com”的临时故障”

从 VPN 断开连接不能解决问题。 (参见解决方法 #2)

我有两种解决方法:

  1. 使用 docker run -it --net=host ubuntu apt update 运行 docker 可以正常工作,但是,对于我公司的脚本和构建系统来说,这不是一个合适的解决方法。它适用于临时工作。
  2. 断开与 VPN 的连接并运行以下脚本(来自 https://github.com/moby/moby/issues/36151 ):

    
    # /bin/bash
    docker system prune -a
    systemctl stop docker
    iptables -F
    ip link set docker0 down
    brctl delbr docker0
    systemctl start docker


将允许它再次工作 - 但是我无法访问我公司的内部服务器,这也是构建我们的软件所必需的。

我已经尝试过这些事情:

* 添加 DNS 到 daemon.json ( [My docker container has no internet](https://stackoverflow.com/questions/20430371/my-docker-container-has-no-internet) )
* 修复 resolv.conf ( [My docker container has no internet](https://stackoverflow.com/questions/20430371/my-docker-container-has-no-internet) )
*  [https://superuser.com/questions/1130898/no-internet-connection-inside-docker-containers](https://superuser.com/questions/1130898/no-internet-connection-inside-docker-containers) 
*  [Docker container can only access internet with --net=host](https://stackoverflow.com/questions/35519615/docker-container-can-only-access-internet-with-net-host) 
*  [https://stackoverflow.com/a/35519951/9496422](https://stackoverflow.com/a/35519951/9496422) 
* 基本上在谷歌前两页搜索“docker container no internet behind vpn”的任何其他点击
stack overflow Docker container cannot access internet behind cisco vpn
原文答案