解决docker network超出数量限制导致docker无法启动问题

NO.1
docker错误

运行docker-compose up后,无法正常启动容器

错误信息

ERROR: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network

此图片的alt属性为空;文件名为image-505-1024x56.png

NO.2
错误原因

docker默认支持30个不同的自定义bridge网络,超出限制后,就会报错

所以解决方式是删除多余的网络,然后再重新创建这个容器的网络

先排查当前网络有多少个

使用命令

docker network ls

bridge、host、none,是docker默认网络 且不能删除

此图片的alt属性为空;文件名为image-506.png

统计当前网络数量

使用命令

docker network ls | wc -l

可以看到已经超出限制了

此图片的alt属性为空;文件名为image-507.png

删除多余的网络(没有使用的网络,自动删除)

使用下面命令

docker network prune

中间会询问一次,确认是否删除?输入y,回车

此图片的alt属性为空;文件名为image-508.png

再次确认当前剩余网络

可以看到只有10左右了,测试是否可以启动服务

此图片的alt属性为空;文件名为image-509.png

可以看到服务正常启动了

此图片的alt属性为空;文件名为image-510.png

NO.3
Tips

本文记录在部署EMQX MQTT服务时,docker无法启动问题

删除多余的network后,服务可以正常启动了

END.