docker因系统变成只读导致的无法启动
failed to start daemon: failed to dial “/run/containerd/containerd.sock”: unknown service contain… 在搭建k8s集群时,有两台主机中途重启过,然后出现docker无法启动的问题,通过journalctl -u docker.service发报如下错 误: Nov 08 14:54:02 iZm5ehqytm0v0o8vdvzuyjZ systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE Nov 08 14:54:02 iZm5ehqytm0v0o8vdvzuyjZ systemd[1]: docker.service: Failed with result ’exit-code’. Nov 08 14:54:02 iZm5ehqytm0v0o8vdvzuyjZ systemd[1]: Failed to start Docker Application Container Engine. Nov 08 14:54:04 iZm5ehqytm0v0o8vdvzuyjZ systemd[1]: docker.service: Service RestartSec=2s expired, scheduling restart. Nov 08 14:54:04 iZm5ehqytm0v0o8vdvzuyjZ systemd[1]: docker.service: Scheduled restart job, restart counter is at 2. Nov 08 14:54:04 iZm5ehqytm0v0o8vdvzuyjZ systemd[1]: Stopped Docker Application Container Engine. Nov 08 14:54:04 iZm5ehqytm0v0o8vdvzuyjZ systemd[1]: Starting Docker Application Container Engine… Nov 08 14:54:05 iZm5ehqytm0v0o8vdvzuyjZ dockerd[1011]: time=“2021-11- 08T14:54:05.000732056+08:00” level=info msg=“Starting up” Nov 08 14:54:05 iZm5ehqytm0v0o8vdvzuyjZ dockerd[1011]: chmod /var/lib/docker: read-only file system 可以看到是出现了read-only file system错误导致的,这是由于突然断电停机,导致服务器磁盘处于了保护状态,禁止写,解决 办法为执行mount -o remount rw / 执行完成后,再运行systemctl start docker.service,此时仍然失败,再使用journalctl -u docker.service查看日志,出现如下错 误 Nov 09 09:32:45 iZm5ehqytm0v0o8vdvzuykZ dockerd[45470]: time=“2021-11- 09T09:32:45.783089413+08:00” level=info msg=“Starting up” Nov 09 09:32:45 iZm5ehqytm0v0o8vdvzuykZ dockerd[45470]: time=“2021-11- 09T09:32:45.785039235+08:00” level=info msg=“parsed scheme: "unix"” module=grpc
Nov 09 09:32:45 iZm5ehqytm0v0o8vdvzuykZ dockerd[45470]: time=“2021-11- 09T09:32:45.785084433+08:00” level=info msg=“scheme "unix" not registered, fallback to default scheme” module=grpc Nov 09 09:32:45 iZm5ehqytm0v0o8vdvzuykZ dockerd[45470]: time=“2021-11- 09T09:32:45.785117219+08:00” level=info msg=“ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock 0 }] }” mod> Nov 09 09:32:45 iZm5ehqytm0v0o8vdvzuykZ dockerd[45470]: time=“2021-11- 09T09:32:45.785135323+08:00” level=info msg=“ClientConn switching balancer to "pick_first"” module=grpc Nov 09 09:32:45 iZm5ehqytm0v0o8vdvzuykZ dockerd[45470]: failed to start daemon: failed to dial “/run/containerd/containerd.sock”: unknown service containerd.services.namespaces.v1.Namespaces: not implemented Nov 09 09:32:45 iZm5ehqytm0v0o8vdvzuykZ systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE Nov 09 09:32:45 iZm5ehqytm0v0o8vdvzuykZ systemd[1]: docker.service: Failed with result ’exit-code’. Nov 09 09:32:45 iZm5ehqytm0v0o8vdvzuykZ systemd[1]: Failed to start Docker Application Container Engine. Nov 09 09:32:47 iZm5ehqytm0v0o8vdvzuykZ systemd[1]: docker.service: Service RestartSec=2s expired, scheduling restart. Nov 09 09:32:47 iZm5ehqytm0v0o8vdvzuykZ systemd[1]: docker.service: Scheduled restart job, restart counter is at 3. Nov 09 09:32:47 iZm5ehqytm0v0o8vdvzuykZ systemd[1]: Stopped Docker Application Container Engine. Nov 09 09:32:47 iZm5ehqytm0v0o8vdvzuykZ systemd[1]: docker.service: Start request repeated too quickly. Nov 09 09:32:47 iZm5ehqytm0v0o8vdvzuykZ systemd[1]: docker.service: Failed with result ’exit-code’. Nov 09 09:32:47 iZm5ehqytm0v0o8vdvzuykZ systemd[1]: Failed to start Docker Application Container Engine. 这里的错误原因是unknown service containerd.services.namespaces.v1.Namespaces: not implemented,解决办法为执 行如下语句 systemctl stop containerd && systemctl start containerd && systemctl start docker.service