ERROR: 2 matches found based on name: network <nameofservice>_default is ambiguous
ERROR: 2 matches found based on name: network <nameofservice>_default is ambiguous
我正在使用命令
构建docker
图像
docker-compose -f "docker-compose.yml" up -d --build
但它 returns 我出错了
ERROR: 2 matches found based on name: network officeconverter_default is ambiguous
这有点清楚,在我的机器中有两个同名的网络试图存在。
问题是如何从 docker 网络中删除网络
PS E:\repos\Github\officeconverter> docker network ls
NETWORK ID NAME DRIVER SCOPE
868c88a83bd6 bridge bridge local
92f7d20ed432 officeconverter_default bridge local
3f96cfb7b591 officeconverter_default bridge local
解决方法很简单!
只需删除网络。
喜欢docker network rm <network Id> <space> <network Id> ....
PS E:\repos\Github\officeconverter> docker network rm 92f7d20ed432 3f96cfb7b591
92f7d20ed432
3f96cfb7b591
PS E:\repos\Github\officeconverter> docker network ls
NETWORK ID NAME DRIVER SCOPE
868c88a83bd6 bridge bridge local
对我有用的解决方案是:
docker system prune -af
docker volume prune --force
.
尝试:
docker network prune
这将删除您的所有网络。
只需 运行 docker 删除 p运行e 它将删除所有网络并重新创建。
使用 sudo cronjob -e
打开 cronjob,然后添加新行
*/1 * * * * docker network prune -f
这将每分钟清理未使用的网络(如果有)。
正如其他人所说,您可以 docker network rm <network id>
到 实际上 删除它们。
但如果您需要选择删除哪一个,您可以:
$ docker network inspect d5867f0be024
[
{
"Name": "minikube",
"Id": "d5867f0be024b1c81237fba1eaef3f1ff53b75e15ab84d46a13dcde53809934e",
"Created": "2022-02-16T19:24:57.7203334-05:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
...
}
]
...然后查看 Created
时间(或其他元数据)来决定要删除的内容。
在我的例子中,我需要删除较新的并保留较旧的。
一个选项是创建一个新网络,使用不同的网络名称,并将您的 docker 容器连接到它。
有歧义的网桥网络名称可能会发生类似的错误。
一个人写了一篇关于如何解决这个问题的完整博客 post。
就我而言,我发现它非常有用,我相信即使您处理的网络不是网桥,这对处于类似情况的其他人也会有用:https://www.jorgeanaya.dev/en/bin/docker-network-name-is-ambiguous/
这是来自博客 post 的简短解决方法(所有功劳都归功于 Jorge Anaya):
创建一个新网络。使用参数-d指定驱动
docker network create -d bridge [new-network-name]
断开容器与模糊网络的连接
docker network disconnect bridge [container-name]
将容器连接到新网络
docker network connect [new-network-name] [container-name]
可选。清除我们的网络并摆脱未使用的网络
docker network rm $(docker network ls -q)
就是这样,现在我们应该可以启动我们的容器了。
不要忘记在每个命令的开头添加 sudo
以获得权限。
我正在使用命令
构建docker
图像
docker-compose -f "docker-compose.yml" up -d --build
但它 returns 我出错了
ERROR: 2 matches found based on name: network officeconverter_default is ambiguous
这有点清楚,在我的机器中有两个同名的网络试图存在。
问题是如何从 docker 网络中删除网络
PS E:\repos\Github\officeconverter> docker network ls NETWORK ID NAME DRIVER SCOPE 868c88a83bd6 bridge bridge local 92f7d20ed432 officeconverter_default bridge local 3f96cfb7b591 officeconverter_default bridge local
解决方法很简单!
只需删除网络。
喜欢docker network rm <network Id> <space> <network Id> ....
PS E:\repos\Github\officeconverter> docker network rm 92f7d20ed432 3f96cfb7b591 92f7d20ed432 3f96cfb7b591 PS E:\repos\Github\officeconverter> docker network ls NETWORK ID NAME DRIVER SCOPE 868c88a83bd6 bridge bridge local
对我有用的解决方案是:
docker system prune -af
docker volume prune --force
.
尝试:
docker network prune
这将删除您的所有网络。
只需 运行 docker 删除 p运行e 它将删除所有网络并重新创建。
使用 sudo cronjob -e
打开 cronjob,然后添加新行
*/1 * * * * docker network prune -f
这将每分钟清理未使用的网络(如果有)。
正如其他人所说,您可以 docker network rm <network id>
到 实际上 删除它们。
但如果您需要选择删除哪一个,您可以:
$ docker network inspect d5867f0be024
[
{
"Name": "minikube",
"Id": "d5867f0be024b1c81237fba1eaef3f1ff53b75e15ab84d46a13dcde53809934e",
"Created": "2022-02-16T19:24:57.7203334-05:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
...
}
]
...然后查看 Created
时间(或其他元数据)来决定要删除的内容。
在我的例子中,我需要删除较新的并保留较旧的。
一个选项是创建一个新网络,使用不同的网络名称,并将您的 docker 容器连接到它。
有歧义的网桥网络名称可能会发生类似的错误。
一个人写了一篇关于如何解决这个问题的完整博客 post。
就我而言,我发现它非常有用,我相信即使您处理的网络不是网桥,这对处于类似情况的其他人也会有用:https://www.jorgeanaya.dev/en/bin/docker-network-name-is-ambiguous/
这是来自博客 post 的简短解决方法(所有功劳都归功于 Jorge Anaya):
创建一个新网络。使用参数-d指定驱动
docker network create -d bridge [new-network-name]
断开容器与模糊网络的连接
docker network disconnect bridge [container-name]
将容器连接到新网络
docker network connect [new-network-name] [container-name]
可选。清除我们的网络并摆脱未使用的网络
docker network rm $(docker network ls -q)
就是这样,现在我们应该可以启动我们的容器了。
不要忘记在每个命令的开头添加 sudo
以获得权限。