在CentOS 7.2上使用Docker:kernel:unregister_netdevice:等待lo空闲。使用计数=1。

68

我在CentOS 7上运行Docker,不时会显示以下消息:

Message from syslogd@dev-master at Mar 29 17:23:03 ...
  kernel:unregister_netdevice: waiting for lo to become free. Usage count = 1

我已经搜索了很多,阅读了许多资源,并尝试了许多方法,比如保持系统更新,升级内核等,但是这个消息仍然不时地出现,虽然不太频繁,但迟早会看到它。此外,我在docker的github上发现有关此问题的问题仍然未解决,那么我的问题是:

  1. 这个消息是什么意思?有人能简单解释一下为什么docker会引起它吗?
  2. 是否有任何解决方法?
  3. 如果这个问题还没有被修复(问题仍然未解决),它会影响运行在docker容器内部的服务器或服务吗?因为它在我们的生产服务器上也经常出现,所以会成为严重的性能问题吗?

Docker版本:

Client:
 Version:      1.11.1
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   5604cbe
 Built:        Wed Apr 27 00:34:42 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.11.1
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   5604cbe
 Built:        Wed Apr 27 00:34:42 2016
 OS/Arch:      linux/amd64

操作系统信息:

CentOS 7, with kernel version: 4.6.0-1.el7.elrepo.x86_64

我非常感谢任何信息/提示或资源,非常感谢。


我们有同样的问题,但在RHEL上唯一能做的就是如果出现这个消息就重新启动计算机。 - Dániel Kis
当消息出现时,我没有执行那个操作,似乎对我们的应用程序没有影响。所以现在我只能让它保持原样 :-( - shizhz
我们必须重新启动,因为当出现此错误时,一些Docker容器无法在Docker Swarm中相互访问。 - Dániel Kis
1个回答

46
您最好的信息来源是您链接到的问题docker#5618。这是一个内核错误,目前尚未得到解决。Docker会因为在创建/销毁容器时还会为容器创建网络接口而“触发”此问题。

谢谢您的信息,请问您能否提供关于我的第三个问题的一些信息? - shizhz
很难说,这取决于你的情况。有些人从来没有遇到过这个问题,有些人则会遇到。 - thaJeztah
快速建议。您的Docker文件中的每一行(例如,您在连续执行RUN 10次)都会创建一个中间Docker镜像。如果可能的话,您可以将其中一些组合在一起--例如,如果您有2个连续的RUN,则将它们&&在一起(再次强调--如果有意义的话)。 - jeremy.mooer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接