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 地址池的主要内容,如果未能解决你的问题,请参考以下文章