执行docker-compose up的时候报错network with driver “bridge”
(base) [root@VM-100-213-centos ~/composetest]# docker-compose up -d
Creating network “composetest_default” with the default driver ERROR:
could not find an available, non-overlapping IPv4 address pool among
the defaults to assign to the network
尝试方法一
删除原来运行过的容器,重新运行
docker rm -f
docker-compose up -d
尝试方法二
先查看networks,执行prune,问题依旧
docker network ls
docker network prune
执行docker network rm试试
docker network rm $(docker network ls -q)
(base) [root@VM-100-213-centos ~/composetest]# docker network rm $(docker network ls -q) Error response from daemon: bridge is a pre-defined network and cannot be removed
Error response from daemon:
host is a pre-defined network and cannot be removed Error response
from daemon: none is a pre-defined network and cannot be removed
原来docker默认有3种网络:bridge、host、none,这三个网络是不能被删除的。所以,网上常见的解决方法不适用。
docker network ls
此命令用于列出当前Docker环境中所有已创建的网络。执行后,您将看到一个列表,包含每个网络的基本信息,如网络名称、网络ID、驱动类型(如bridge、overlay等)、是否为内部网络以及是否为默认网络等。示例输出如下:
NETWORK ID NAME DRIVER SCOPE
0b0a2f9e0e3d bridge bridge local
d6c5f5195b0e host host local
123456abcde7 my_custom_network bridge local
987654fedcba none null local
docker network prune
此命令用于清理(删除)所有未被任何容器使用的网络。这些通常是由于之前创建的容器已停止或被删除,但其关联的网络并未被自动清理所遗留下来的。使用docker network prune
可以有效地释放资源,保持Docker网络环境的整洁。执行此命令时,Docker会显示即将删除的网络列表,并询问您是否确认执行该操作。如果您确认(通常通过输入y
或yes
并回车),Docker将删除所有未使用的网络。
示例交互式提示:
WARNING! This will remove all networks not used by at least one container.
Are you sure you want to continue? [y/N] y
请注意,一旦执行docker network prune
并确认删除,被清理的网络及其配置将无法恢复。在执行此命令前,请确保您了解哪些网络处于未使用状态,避免误删仍在使用或将来可能需要复用的网络。如果您只想删除特定的未使用网络,应使用docker network rm <network_name_or_id>
命令指定目标网络进行删除。