如何让 docker.service 在 systemd 启动期间等待 cni0.netdev 桥?

如何让 docker.service 在 systemd 启动期间等待 cni0.netdev 桥?

我正在运行 Ubuntu 18.04.1 LTS

我已经创建了一个cni0.netdevcni0.network文件来/etc/systemd/network创建一个用于本地 Kubernetes 集群/节点的虚拟桥。

我已启用systemd-networkd-wait-online.service

我有以下内容docker.service [Unit]

After=network-online.target docker.socket firewalld.service
Wants=network-online.target
Requires=docker.socket

然而,当我启动时,dockerd抱怨cni0尚未启动,但当我登录时,桥就在那里。如果我重新启动,dockerd它就会拿起桥并使用它。

我无法添加After=forcni0.netdev因为netdev文件是配置文件,systemd-networkd而不是它们自己的“单元”。

看起来就像systemd-networkd-wait-online.service只是等待“任何”界面上线,这将是常规eth0界面。

dockerd在启动之前如何等待该网桥启动并配置完毕?

答案1

你也许可以尝试添加一个After/Wants=sys-devices-virtual-net-cni0.device

您可以使用以下命令检查设备的确切名称systemctl

相关内容