错误信息
使用的是阿里云的云主机,四台机器,里面都已经安装好了Docker
,用于搭建K8S集群,其中三台的docker
没能正常启动。执行docker info
,报错:
这表明docker
没有启动成功。
排查过程
通过journalctl -u docker.service
查看docker
的日志
通过上面的日志可以看出,由于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
不管用,):
1 | systemctl stop containerd |
总结
Linux
中排查docker
启动过程,可以通过如下思路:
1 | 查看docker的状态 |