Dockerd启动慢
Published:
在Arch Linux上第一次手动启动 dockerd 需要两分钟,结果发现是 systemcd-networkd-wait-online 在等待所有网卡就绪。
在dockerd启动并且卡住的过程中可以在另外的终端查看当前的job:
systemctl list-jobs
可以发现是在等待 systemd-networkd-wait-online 的完成。
networkctl --all status
可以看到我的有线网没接, 所以state一直是 configuring, 但是无线网是已经就绪了的。
从status中可以看到有线网的 Link File, 修改卡住的有线网对应的 Link File, 添加:
RequiredForOnline=no
这样就不会阻塞后面的进程启动了, 因为我我的电脑本身也没有接无线网卡。
另外也可以再编辑一下 systemd-networkd-wait-online 的配置:
sudo systemctl edit systemd-networkd-wait-online.service
添加override
[Service]
ExecStart=
ExecStart=/usr/bin/systemd/systemd-networkd-wait-online --any
只要有任意一个网卡就绪就算完成,防止一直等待。
其他依赖 network-online 的service都可能遇到这个类似的问题。
经过这样修改后,就可以把dockerd也添加到自动启动的服务中去了,启动的时候也不会卡死了。