我在运行多个容器的 Ubuntu 22.04 服务器上使用 Docker 20.10.14,并且使用Watchtower自动更新容器。
自从我更新到 Ubuntu 22.04 后,我在networkd-dispatcher
更新容器时收到了过多的日志消息。这是我收到的日志消息:
May 3 01:03:06 xb networkd-dispatcher[1327]: ERROR:Unknown state for interface veth44e6185: initialized
May 3 01:03:06 xb networkd-dispatcher[1327]: Traceback (most recent call last):
May 3 01:03:06 xb networkd-dispatcher[1327]: File "/usr/bin/networkd-dispatcher", line 428, in _receive_signal
May 3 01:03:06 xb networkd-dispatcher[1327]: self.handle_state(iface_name,
May 3 01:03:06 xb networkd-dispatcher[1327]: File "/usr/bin/networkd-dispatcher", line 345, in handle_state
May 3 01:03:06 xb networkd-dispatcher[1327]: raise UnknownState(administrative_state)
May 3 01:03:06 xb networkd-dispatcher[1327]: UnknownState: initialized
May 3 01:03:06 xb networkd-dispatcher[1327]: ERROR:Unknown state for interface veth6d82244: initialized
May 3 01:03:06 xb networkd-dispatcher[1327]: Traceback (most recent call last):
May 3 01:03:06 xb networkd-dispatcher[1327]: File "/usr/bin/networkd-dispatcher", line 428, in _receive_signal
May 3 01:03:06 xb networkd-dispatcher[1327]: self.handle_state(iface_name,
May 3 01:03:06 xb networkd-dispatcher[1327]: File "/usr/bin/networkd-dispatcher", line 345, in handle_state
May 3 01:03:06 xb networkd-dispatcher[1327]: raise UnknownState(administrative_state)
May 3 01:03:06 xb networkd-dispatcher[1327]: UnknownState: initialized
在这种特殊情况下,接口veth44e6185
是容器升级后仍然存在的接口,而我假设接口veth6d82244
来自前一个容器,因为该接口不再存在。
我相信这是因为 Docker 网络接口在更新时为每个容器重新初始化/重新启动。Docker 网络接口很容易识别,因为它们具有 format vethXXXXXXX
,其中X
是十六进制数字。
容器更新后一切正常,但是随着从 Ubuntu 20.04 到 22.04 的更新,错误消息中的详细程度急剧上升。
那么是否有任何简单而智能的方法来networkd-dispatcher
仅禁用 Docker 接口的日志消息?
networkd-dispatcher
升级到版本似乎2.1-2-ubuntu0.22.04.2
修复了先前安全更新的回归。