由于网络问题,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-composesets 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自定义网络以及网络连通操作

什么是覆盖网络以及 DNS 解析如何工作?

yum&docker设置网络代理

Docker macvlan host to container 互通

Docker推送镜像到私有仓库,https必须要使用443端口吗?

【udp】关于docker 容器网络下使用 UDP 协议无法通讯问题的分析和处理