通过上面的日志可以看出,由于chmod /var/lib/docker: read-only file system ,/var/lib/docker 为只读权限,每次都启动失败,启动失败太多次,docker就停止启动了(start request repeated too quickly for docker.service)于是执行(root用户):mount -o remount rw /。
再次启动:systemctl start docker.service,嗯 再一次报错了。。。。。
这次是由于failed to start daemon: failed to dial "/run/containerd/containerd.sock": unknown service containerd.services.namespaces.v1.Namespaces: not implemented
,启动失败次数太多导致停止启动,这个地方试了很多办法都没能搞定。。。终于在Docker daemon and Containerd dockerd out of sync in 18.09 #421 这个issue
中看到了这个方法,先将containerd
停掉,再启动(发现直接restart
不管用,):
systemctl stop containerd
systemctl start containerd
#启动docker
systemctl start docker.service
总结
Linux中排查docker启动过程,可以通过如下思路:
#查看docker的状态
sudo docker info
#启动正常输出client 和 server的信息
#通用查看docker状态的方式
systemctl status docker.service
#启动失败 查看docker的日志,
journalctl -u docker.service
#根据启动失败日志分析原因,如果是文件权限相关,则修改权限
转载链接http://www.huangxiutao.cn/fixed-docker-start-failed-on-linux.html