创建默认\"bridge \"网络时出错:无法创建网络(docker0):与网络冲突(docker0):网络具有相同的网桥名称

mak*_*enz 6 docker

停止码头后,它拒绝再次启动.它抱怨另一个名为docker0的桥已经存在:

level=warning msg="devmapper: Base device already exists and has filesystem xfs on it. User specified filesystem  will be ignored."
level=info msg="[graphdriver] using prior storage driver \"devicemapper\""
level=info msg="Graph migration to content-addressability took 0.00 seconds"
level=info msg="Firewalld running: false"
level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
level=fatal msg="Error starting daemon: Error initializing network controller: Error creating default \"bridge\" network: cannot create network fa74b0de61a17ffe68b9a8f7c1cd698692fb56f6151a7898d66a30350ca0085f (docker0): conflicts with network bb9e0aab24dd1f4e61f8e7a46d4801875ade36af79d7d868c9a6ddf55070d4d7 (docker0): networks have same bridge name"
docker.service: Main process exited, code=exited, status=1/FAILURE
Failed to start Docker Application Container Engine.
docker.service: Unit entered failed state.
docker.service: Failed with result 'exit-code'.
Run Code Online (Sandbox Code Playgroud)

删除桥接器ip link del docker0然后启动docker导致与另一个id相同的结果.

rjd*_*olb 10

对我来说,我降级了我的操作系统(在这种情况下是Centos Atomic Host)并且遇到了这个错误消息.较旧的Centos Atomic的码头是1.9.1.在运行降级之前,我没有运行任何正在运行的docker容器或图像.

我只是跑了下面,码头工人又开心了:

sudo rm -rf /var/lib/docker/network
sudo systemctl start docker
Run Code Online (Sandbox Code Playgroud)

更多信息.


小智 7

问题似乎出在/var/docker/network/. 存储了许多通过旧 ID 引用桥的套接字。要解决这个问题,您可以删除所有套接字,删除接口,然后启动 docker ,但所有容器都将拒绝工作,因为它们的套接字消失了。就我而言,我并不关心我的无状态容器,所以这解决了问题:

ip link del docker0
rm -rf /var/docker/network/*
mkdir -p /var/docker/network/files
systemctl start docker
# delete all containers
docker ps -a | cut -d' ' -f 1 | xargs -n 1 echo docker rm  -f
# recreate all containers
Run Code Online (Sandbox Code Playgroud)