现象

ubuntu 下使用docker,秃然一天报了一个错误

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 

排查

排查了半天,是dockerd启动的时候指定的API listen 和默认的不一致。
systemctl 启动的时候,设置的是/run/docker.sock
手动启动的时候是,/var/run/docker.sock
并且 ubuntu下启动的时候也没有看到/run/下面有docker.sock创建

解决

所以有两种办法

1.手动启动dockerd

nohup dockerd &

2.修改systemctl配置文件

vim /lib/systemd/system/docker.service
ExecStart 增加unix listen的socket 配置指定

ExecStart=/usr/bin/dockerd  -H unix:///var/run/docker.sock -H fd:// --containerd=/run/containerd/containerd.sock 

3.重启docker

systemctl restart docker
03-08 19:17