Docker守护进程无法初始化网络控制器
问题描述:
我无法启动泊坞窗守护进程。我已经安装了docker
,但是当我尝试运行# systemctl start docker.service
时,它会引发错误。 $ systemctl status docker.service
给了我这样的:Docker守护进程无法初始化网络控制器
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Wed 2016-09-21 14:38:24 CEST; 6s ago
Docs: https://docs.docker.com
Process: 5592 ExecStart=/usr/bin/dockerd -H fd:// (code=exited, status=1/FAILURE)
Main PID: 5592 (code=exited, status=1/FAILURE)
Sep 21 14:38:24 tp-x230 dockerd[5592]: time="2016-09-21T14:38:24.271068176+02:00" level=warning msg="devmapper: Base device already exists and has filesystem xfs on it. User specified filesystem will be ignored."
Sep 21 14:38:24 tp-x230 dockerd[5592]: time="2016-09-21T14:38:24.327814644+02:00" level=info msg="[graphdriver] using prior storage driver \"devicemapper\""
Sep 21 14:38:24 tp-x230 dockerd[5592]: time="2016-09-21T14:38:24.329895994+02:00" level=info msg="Graph migration to content-addressability took 0.00 seconds"
Sep 21 14:38:24 tp-x230 dockerd[5592]: time="2016-09-21T14:38:24.330707721+02:00" level=info msg="Loading containers: start."
Sep 21 14:38:24 tp-x230 dockerd[5592]: time="2016-09-21T14:38:24.335610867+02:00" level=info msg="Firewalld running: false"
Sep 21 14:38:24 tp-x230 dockerd[5592]: time="2016-09-21T14:38:24.461243263+02:00" level=fatal msg="Error starting daemon: Error initializing network controller: Error creating default \"bridge\" network: failed to parse pool request for ad
Sep 21 14:38:24 tp-x230 systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
Sep 21 14:38:24 tp-x230 systemd[1]: Failed to start Docker Application Container Engine.
Sep 21 14:38:24 tp-x230 systemd[1]: docker.service: Unit entered failed state.
Sep 21 14:38:24 tp-x230 systemd[1]: docker.service: Failed with result 'exit-code'.
与相关线是:
Sep 21 14:38:24 tp-x230 dockerd[5592]: time="2016-09-21T14:38:24.461243263+02:00" level=fatal msg="Error starting daemon: Error initializing network controller: Error creating default \"bridge\" network: failed to parse pool request for ad
答
原来我需要启用该码头工人试图用,即bridge
网络的网络IP转发。
这是通过与内容创建文件/etc/systemd/network/bridge.network
[Network]
IPFoward=kernel
,然后用# systemctl restart systemd-networkd.service
重新启动systemd-networkd
守护进程来完成。在此之后,# systemctl start docker.service
工作正常。
P.S.重新启动网络守护程序后,我断开与网络的连接(正如人们所期望的)并且必须手动连接。如果你有重要事情发生,可能值得考虑。
答
你的错误文本被切断,所以我不能检查,如果它是完全一样的错误,但我得到这个错误:
Error starting daemon: Error initializing network controller: Error creating default "bridge" network: failed to parse pool request for address space "LocalDefault" pool "" subpool "": could not find an available predefined network
这是关系到机器,具有多个网络卡(也有可能发生在VPN设备)
对我来说,解决办法是手动启动泊坞窗是这样的:
/usr/bin/docker daemon --debug --bip=192.168.y.x/24
其中192.168.yx是主要的机器的IP和/ 24 IP网络掩码。 Docker将使用这个网络范围来构建桥梁和防火墙。 --debug并不是真的需要,但可能会有所帮助,如果还有其他的失败
启动一次后,你可以杀死码头,像往常一样开始。 AFAIK,docker为这个--bip创建了一个缓存配置,现在应该没有它。当然,如果你清理docker cache,你可能需要重新执行一次。