今天突然发现运行在 Docker 容器里的 Jenkins 无法登录了。运行 systemctl status docker
,看见它的状态是 Failed。试图重启,报告Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
。
首先怀疑是 /etc/docker/daemon.json 的格式问题。看起来格式没错。问题依旧。
接着运行 docker -v ,发现是 release candidate 版本,于是卸载,再重装最新的稳定版。问题依旧。
sudo tail -100 /var/log/messages
,发现以下信息,于是删除 /var/run/docker.pid 文件。问题依旧。
Error starting daemon: pid file found, ensure docker is not running or delete /var/run/docker.pid
再次sudo tail -100 /var/log/messages
,发现以下信息,通过谷歌,找到一个类似问题,
Error starting daemon: error while opening volume store metadata database: timeout
运行以下命令,sudo daemon-reload && sudo systemctl start docker
重启成功,问题解决
ps axf | grep docker | grep -v grep | awk '{print "kill -9 " $1}' | sudo sh