由于网络问题,Docker 无法使用 ***
Posted
技术标签:
【中文标题】由于网络问题,Docker 无法使用 ***【英文标题】:Docker not working with a *** due to network issues 【发布时间】:2020-11-25 06:44:09 【问题描述】:由于某种原因,我的 *** (Nord***) 干扰了 Docker:
make start
docker-compose -f docker-compose/docker-compose.base.yml -f docker-compose/docker-compose.dev.yml up -d
doCreating network "docker-compose_default" with the default driver
ERROR: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network
cmake: *** [Makefile:59: up_dev] Error 1
问题似乎与网络有关。不过,我不确定如何对其进行故障排除或修复。禁用我的 *** 并运行 sudo systemctl restart docker
后,Docker 工作正常。
环境
Ubuntu 20.04 LTS Docker 版本 19.03.8,构建 afacb8b7f0 Nord*** 版本 3.7.4【问题讨论】:
您可能处于为 docker 创建的最大网络数。试试docker network prune
,然后再试一次。如果确实是 *** 的问题,请尝试this。
就我而言,docker network prune
解决了 macOS 10.15.2 和 Proton*** 1.9.0 的网络问题。 Docker 会在使用 ERROR [internal] load metadata
构建时中断,更准确地说是 failed to solve with frontend dockerfile.v0
,因为请求因 Service Unavailable
而失败
【参考方案1】:
TL;DR
这里的问题是docker
/docker-compose
无法找到合适的地址范围来为新的内部网络分配子网,因为 *** 会为所有 IP 地址添加路由。
解决方案:
-
在
docker-compose.yml
中手动define the network and its address range 或使用existing one => 需要更改所有docker-compose.yml
文件,由于硬编码地址,这些文件也可能难以移植。
在 *** 之前启动 docker
/所有服务 => 可能并非在所有情况下都可行
重新配置您的 *** 的路由配置以排除 docker 使用的范围 => 会增加您的 *** 配置的复杂性,如果操作不当,可能会泄漏用于 *** 的流量
说明
默认为docker-compose
sets up a dedicated docker network
for each project,即docker主机上的虚拟桥接设备。
要将子网范围和网关地址分配给网络docker
,会尝试从可能的范围池中选择一个范围。它会检查所选范围是否与已绑定到已连接网络设备的范围/路由重叠,以防止主机使用的地址范围发生冲突。
另一方面,*** 可能会添加自己的路由,以便通过 *** 隧道重定向所有流量。因此,docker
将无法找到分配给新网络的“未使用”地址范围。
有关更多信息,请参阅 the answers to this question 和 respective issue on GitHub
【讨论】:
【参考方案2】:这对我有用。停止正在运行的容器并尝试
docker network prune
注意:慎用
【讨论】:
它对我有效!谢谢以上是关于由于网络问题,Docker 无法使用 ***的主要内容,如果未能解决你的问题,请参考以下文章
Docker macvlan host to container 互通