Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
由于网络问题,Docker无法使用VPN_Docker_Vpn - Fatal编程技术网

由于网络问题,Docker无法使用VPN

由于网络问题,Docker无法使用VPN,docker,vpn,Docker,Vpn,出于某种原因,我的VPN(NordVPN)正在干扰Docker: 启动 docker compose-f docker compose/docker-compose.base.yml-f docker compose/docker-compose.dev.yml up-d 使用默认驱动程序创建网络“docker-compose_default” 错误:在要分配给网络的默认值中找不到可用的非重叠IPv4地址池 cmake:**[Makefile:59:up\u dev]错误1 问题似乎与网络有关

出于某种原因,我的VPN(NordVPN)正在干扰Docker:

启动
docker compose-f docker compose/docker-compose.base.yml-f docker compose/docker-compose.dev.yml up-d
使用默认驱动程序创建网络“docker-compose_default”
错误:在要分配给网络的默认值中找不到可用的非重叠IPv4地址池
cmake:**[Makefile:59:up\u dev]错误1
问题似乎与网络有关。不过,我不知道如何排除故障或修复它。禁用我的VPN并运行sudo systemctl restart docker后,docker工作正常

环境
  • Ubuntu 20.04 LTS
  • Docker版本19.03.8,构建afacb8b7f0
  • NordVPN版本3.7.4
TL;博士 这里的问题是,
docker
/
docker compose
无法找到合适的地址范围来将子网分配给新的内部网络,因为VPN为所有IP地址添加了路由

解决:
  • 手动输入
    docker compose.yml
    或使用=>需要更改所有
    docker compose.yml
    文件,这些文件也可能由于硬编码地址而难以移植
  • 在VPN之前启动
    docker
    /您的所有服务=>可能在所有情况下都不可行
  • 重新配置VPN的路由配置以排除docker=>要使用的范围将增加VPN配置的复杂性,如果操作错误,可能会泄漏用于VPN的流量
  • 解释 默认情况下,
    docker compose
    ,即docker主机上的虚拟网桥设备

    要将子网范围和网关地址分配给网络,
    docker
    尝试从可能的范围池中选择一个范围。它检查所选范围是否与已绑定到连接的网络设备的范围/路由重叠,以防止主机使用的地址范围冲突问题

    另一方面,VPN可以添加自己的路由,以便通过VPN隧道重定向所有流量。因此,docker将无法找到“未使用”的地址范围来分配给新网络


    有关这方面的更多信息,请参阅和

    这对我很有用。停止正在运行的容器并尝试使用

    docker网络修剪


    注意:小心使用

    您可能已为docker创建了最多个网络。请尝试删除docker网络,然后重试。如果这确实是VPN的问题,请尝试。在我的例子中,
    docker network prune
    解决了macOS 10.15.2和ProtNVPN 1.9.0的网络问题。Docker将在生成时中断
    错误[internal]加载元数据
    更准确地说,它
    无法使用前端dockerfile.v0解决,因为请求因
    服务不可用而失败