【问题标题】:Docker daemon killed shorty after startDocker 守护进程在启动后不久被杀死
【发布时间】:2019-02-21 16:26:57
【问题描述】:

我有一台运行最新更新的 Ubuntu 18.04.2 LTS 的服务器。我使用来自https://docs.docker.com/install/linux/docker-ce/ubuntu/的教程使用repo安装了docker-ce

在启动后不久,docker 守护进程以某种方式被杀死。为了调试,我跑了

/usr/bin/dockerd

以 root 身份获取日志输出:

root@hostname ~ # /usr/bin/dockerd
INFO[2019-02-21T17:20:15.233508941+01:00] systemd-resolved is running, so using resolvconf: /run/systemd/resolve/resolv.conf
INFO[2019-02-21T17:20:15.235533437+01:00] parsed scheme: "unix"                         module=grpc
INFO[2019-02-21T17:20:15.235562227+01:00] scheme "unix" not registered, fallback to default scheme  module=grpc
INFO[2019-02-21T17:20:15.235594491+01:00] parsed scheme: "unix"                         module=grpc
INFO[2019-02-21T17:20:15.235601292+01:00] scheme "unix" not registered, fallback to default scheme  module=grpc
INFO[2019-02-21T17:20:15.239064773+01:00] ccResolverWrapper: sending new addresses to cc: [{unix:///run/containerd/containerd.sock 0  <nil>}]  module=grpc
INFO[2019-02-21T17:20:15.239098425+01:00] ClientConn switching balancer to "pick_first"  module=grpc
INFO[2019-02-21T17:20:15.239155494+01:00] pickfirstBalancer: HandleSubConnStateChange: 0xc42018d430, CONNECTING  module=grpc
INFO[2019-02-21T17:20:15.239321579+01:00] pickfirstBalancer: HandleSubConnStateChange: 0xc42018d430, READY  module=grpc
INFO[2019-02-21T17:20:15.240106192+01:00] ccResolverWrapper: sending new addresses to cc: [{unix:///run/containerd/containerd.sock 0  <nil>}]  module=grpc
INFO[2019-02-21T17:20:15.240142826+01:00] ClientConn switching balancer to "pick_first"  module=grpc
INFO[2019-02-21T17:20:15.240193046+01:00] pickfirstBalancer: HandleSubConnStateChange: 0xc4207c2120, CONNECTING  module=grpc
INFO[2019-02-21T17:20:15.240315657+01:00] pickfirstBalancer: HandleSubConnStateChange: 0xc4207c2120, READY  module=grpc
INFO[2019-02-21T17:20:15.243221391+01:00] [graphdriver] using prior storage driver: overlay2 
INFO[2019-02-21T17:20:15.275042317+01:00] Graph migration to content-addressability took 0.00 seconds 
WARN[2019-02-21T17:20:15.275313782+01:00] Your kernel does not support swap memory limit 
WARN[2019-02-21T17:20:15.275355076+01:00] Your kernel does not support cgroup rt period 
WARN[2019-02-21T17:20:15.275369332+01:00] Your kernel does not support cgroup rt runtime 
INFO[2019-02-21T17:20:15.275785076+01:00] Loading containers: start.                   
INFO[2019-02-21T17:20:16.335203892+01:00] Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address 
INFO[2019-02-21T17:20:16.683066803+01:00] Loading containers: done.                    
INFO[2019-02-21T17:20:16.835625998+01:00] Docker daemon                                 commit=6247962 graphdriver(s)=overlay2 version=18.09.2
INFO[2019-02-21T17:20:16.835701364+01:00] Daemon has completed initialization          
INFO[2019-02-21T17:20:16.842961863+01:00] API listen on /var/run/docker.sock             
Killed

如您所见,最后有两个警告(我认为它们无关紧要)和一个关于杀戮的消息。守护进程的运行时间大约是一分钟。

我之前在这台机器上安装了 docker(使用 docker.io),但我清除了所有数据包,删除了 /var、/etc 和 /home 和 /run 中所有与 docker 相关的文件,并执行了系统范围的搜索对于其中包含*docker* 的任何文件。问题仍然存在。如何进一步调试并找出 docker 守护进程一直被杀死的原因?

【问题讨论】:

  • 这可能是问题所在:您的内核不支持交换内存限制/您的内核不支持 cgroup rt 周期/您的内核不支持 cgroup rt 运行时
  • 我有几台其他机器运行良好,但出现这些警告。另外,根据this,警告应该是无关紧要的,因为我没有运行任何容器,因此不会对其内存消耗施加任何限制。

标签: linux docker crash systemd


【解决方案1】:

检查 /var/log/kern.log 以查看 docker 守护进程被杀死的原因。如果是关于触发了 OOM-killer(内存不足的杀手),那么您的系统上没有足够的内存。添加更多 RAM 或交换内存。

【讨论】:

  • 内核日志在重新启动 docker 时不显示任何条目(并在此之后将其杀死)。 journalctl -f -k也没有显示任何条目。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-29
  • 1970-01-01
  • 2011-11-07
  • 1970-01-01
  • 1970-01-01
  • 2016-10-26
相关资源
最近更新 更多