就在今天, 我的服务器重启之后, docker ps突然没法用了, 提示信息如下.
ubuntu@xxx:~$ docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
提示信息很明显,就是问我docker是否启动, 按道理来说docker应该是服务自拉起的. 既然没有启动肯定是出了问题. 需要进行排查.
第一步我是直接 systemctl 启动一次, 不过依旧报错. 信息如下:
ubuntu@xxx:~$ systemctl start docker.service
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
提示信息说启动失败了, 然后叫我 status 查看一下, 命令执行后信息如下:
ubuntu@xxx:~$ systemctl status docker.service
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: failed (Result: start-limit-hit) since 二 2019-05-07 11:26:12 CST; 10s ago
Docs: https://docs.docker.com
Process: 26461 ExecStart=/usr/bin/dockerd -H fd:// (code=exited, status=2)
Main PID: 26461 (code=exited, status=2)
5月 07 11:26:12 xxx systemd[1]: docker.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
5月 07 11:26:12 xxx systemd[1]: Failed to start Docker Application Container Engine.
5月 07 11:26:12 xxx systemd[1]: docker.service: Unit entered failed state.
5月 07 11:26:12 xxx systemd[1]: docker.service: Failed with result 'exit-code'.
5月 07 11:26:12 xxx systemd[1]: docker.service: Service hold-off time over, scheduling restart.
5月 07 11:26:12 xxx systemd[1]: Stopped Docker Application Container Engine.
5月 07 11:26:12 xxx systemd[1]: docker.service: Start request repeated too quickly.
5月 07 11:26:12 xxx systemd[1]: Failed to start Docker Application Container Engine.
5月 07 11:26:12 xxx systemd[1]: docker.service: Unit entered failed state.
5月 07 11:26:12 xxx systemd[1]: docker.service: Failed with result 'start-limit-hit'.
从提示信息我反正是没看出来太多有用的信息来的, 然后就祭出了搜索大法, 发现和我一样问题的挺多的. 我就直接给我问题解决的链接先.
博客园
根据上面博主的解决方案, 我将 /etc/docker/daemon.json 的文件进行了修改, 文件内容展示在下面如下:
{
"registry-mirrors": ["阿里云仓库加速链接"],
"bip": "10.0.0.1/16",
"graph": "/mnt/docker-data",
"storage-driver": "overlay"
}
接下来通过 systemctl start docker.service
启动了一下docker, 问题果然消失了. 上面博主对问题描述的也已经非常清楚,我在此只是做一个引用.
ocker的engine 基于Device Mapper提供的一种存储驱动,而它又依赖与 devicemapper。于是乎我将它给删除并重启服务,解决了docker无法正常启动的问题。