这个 docker 日志条目是什么意思?

Phi*_* Z. 49 syslog services docker 18.04

几分钟前,我的电脑崩溃了,因为显然我的硬盘驱动器已满。在恢复模式下启动后,我发现 /var/log 中的 syslog 文件有64GB大。我将文件的末尾保存在另一个分区上,然后将其删除。显然 docker 似乎是问题所在,因为我在文件末尾发现了很多这样的问题,并且有一个 docker 进程一直以 200% 的 CPU 运行。清除日志并杀死 docker 后,一切似乎都正常了。

Nov 15 01:44:08 Elemental docker.dockerd[1120]: 
time="2019-11-15T01:44:08.727060251Z" level=error 
msg="failed to get event" error="rpc error: code = 
Unavailable desc = all SubConns are in TransientFailure, latest connection 
error: connection error: desc = \"transport: Error 
while dialing dial unix /run/containerd/containerd.sock: 
connect: permission denied\"" module=libcontainerd namespace=plugins.moby
Nov 15 01:44:08 Elemental docker.dockerd[1120]:     time="2019-11-15T01:44:08.727116701Z" 
...
Run Code Online (Sandbox Code Playgroud)

等等。我希望这个问题不会再次出现,但我仍然想知道这里可能发生了什么。

小智 49

我同时通过 apt 和 snap 安装了 docker 包。因此,通过 snap 打包系统删除 docker 可以解决此问题。

# apt list --installed | grep docker   
docker/bionic,now 1.5-1build1 amd64 [installed]
docker-ce/bionic,now 5:19.03.5~3-0~ubuntu-bionic amd64 [installed]
docker-ce-cli/bionic,now 5:19.03.5~3-0~ubuntu-bionic amd64 [installed,automatic]

# snap list | grep docker
docker                18.09.9                     418   stable    canonical?  -

# snap remove docker
docker removed
Run Code Online (Sandbox Code Playgroud)

  • 同样,我没有意识到我通过 snap 安装了 docker,并且从今天 04:00Z 开始出现问题。我需要运行 `sudo snap remove docker --purge` 来修复它。感谢您的回复。 (8认同)
  • 奇怪的是,这件事发生在我身上几乎和你同时发生!我想知道是否推送了一些更新 - 无论如何,`sudo snap remove docker --purge` 修复了我的高 CPU 问题! (2认同)
  • 这也打击了我。docker 今天早些时候通过 snap 自动安装了自己,它生成了 800GB 的日志并填满了我们的根磁盘。跆拳道? (2认同)

小智 16

几个小时前,Cannonical 的某个人搞砸了 - 它在启动板上被跟踪 - https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1852720

我的系统昨天只安装了 docker,和这里的其他人一样 - syslog 杀死了磁盘上的整个可用空间,从 snap 中清除 docker 有帮助。

  • 发生了什么让 Cannonical 能够远程安装软件包。这实际上是荒谬的,并关闭了我自己的许多服务器 (6认同)

小智 9

您有多个 docker 服务正在运行。看起来 dockerd 正在尝试访问 containerd 的不同安装,垃圾邮件系统日志。

就我而言,teamcity 代理和 docker 安装发生冲突。

sudo apt-get purge docker-ce
sudo apt autoremove
sudo rm -rf /var/lib/docker
sudo truncate -s 0 /var/log/syslog
Run Code Online (Sandbox Code Playgroud)

运行上面的这些命令并重新启动。一切顺利。


frp*_*pet 6

也发生在我身上。我想知道是否是一个快照更新让它发生了:

ID   Status  Spawn               Ready               Summary
17   Done    today at 00:34 UTC  today at 00:34 UTC  Auto-refresh snap "docker"
Run Code Online (Sandbox Code Playgroud)

卸载 + 重新安装 Ubuntu 的 docker.io 包会带来这个问题,但由于某种原因,我也安装了一个 docker,所以这就是触发冲突的原因。

Name    Version    Rev   Tracking  Publisher   Notes
core    16-2.42.1  8039  stable    canonical?  core
docker  18.09.9    418   stable    canonical?  -
Run Code Online (Sandbox Code Playgroud)

但是,我不记得我曾经安装过 docker snap 包……但这毕竟是一个测试系统,其他人可能认为这是一个好主意……


小智 5

我也遇到了这个问题,所以以防万一其他人在这里徘徊,我可以描述对我有用的解决方案。我首先尝试了 Chris Sung 的建议,但没有奏效。

症状是:

  1. dockerb 以 200+% 的 CPU 运行,并且会不断地用 kill 命令重新启动

  2. 正如 Philip Z. 看到的那样,系统日志中填充了巨大的文件。当我今天早上进来时,它已经用 700GB 的文件填满了我的整个硬盘。

首先删除大文件,这样你就可以真正做一些事情。它将再次开始填满,但您应该有一些时间。

sudo truncate -s 0 /var/log/syslog
Run Code Online (Sandbox Code Playgroud)

然后删除 snap docker 安装。这对我来说是问题,而不是 docker-ce

sudo snap stop docker
sudo snap remove docker
Run Code Online (Sandbox Code Playgroud)

我不确定是否有必要,但我也继续并完全摆脱了 snap

sudo apt purge snap
Run Code Online (Sandbox Code Playgroud)

您不应再在顶部看到 dockerb。然后,您可以重新运行日志截断器以删除在执行上述命令时写入的任何垃圾。如果您像我一样搞砸并完全删除系统日志,请确保为新系统日志提供正确的权限。

sudo cd /var/log
sudo touch syslog
sudo chown syslog:adm syslog
sudo service rsyslog restart
Run Code Online (Sandbox Code Playgroud)