Docker:在分配给网络的默认值中找不到可用的、非重叠的 IPv4 地址池

Posted

技术标签:

【中文标题】Docker:在分配给网络的默认值中找不到可用的、非重叠的 IPv4 地址池【英文标题】:Docker: Could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network 【发布时间】:2018-08-16 16:37:36 【问题描述】:

当我尝试使用 docker-compose 部署我的应用程序时,我得到了以下错误:

Creating network "<myapplicationnamehere_mycustomnetwork>" with the 
default driver
could not find an available, non-overlapping IPv4 address pool among 
the defaults to assign to the network

现在我在这里和那里进行了一些研究,人们建议使用docker network prune 修剪未使用的旧 docker 网络。但由于我正在运行 34 个 docker 容器(我认为大约 30 个网络),它只会在错误再次发生之前修剪一两个旧网络。

我的问题是:如何确保我可以运行许多服务而不会遇到 docker 网络分配问题。 (也许以某种方式创建更小的子网?)

我的 docker-compose 文件中最重要的网络部分如下所示:

#
# Networks section
# Networks:
# - public, represents the network between nginx and the public nginx-proxy (which should be already running)
# - uwsgi, represents the network between nginx and uwsgi
# - postgres, represents the network between uwsgi and postgres
#
networks:
  uwsgi:
  postgres:
  public:
    external:
      name: nginx-proxy

【问题讨论】:

感谢您在问题中提及docker network prune,这正是我所需要的 【参考方案1】:

自 Docker 18.06 起,您可以使用 default-address-pool 属性指定自定义地址范围。另见the associated Pull Request。

【讨论】:

以上是关于Docker:在分配给网络的默认值中找不到可用的、非重叠的 IPv4 地址池的主要内容,如果未能解决你的问题,请参考以下文章

在 Oracle 中找不到分配给已创建角色的权限

在当前项目和存储库中可用的插件组 [] 中找不到前缀“war”的插件 [重复]

Docker - 在 docker 容器日志中找不到模块

Docker 容器的网络模式

Pyspark 在 docker 中找不到 csv

docker--网络和特权模式