这里写自定义目录标题
执行docker images
docker images
报错:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
第一反应是docker.service服务没启动
systemctl status docker
发现:
服务正常的一批
想起之前曾经配置了远程登录docker服务,方便其他机器的docker-cli连接
试了docker-compose up,提到了环境变量DOCKER_HOST,莫名想起了之前为了在其他机器远程登录docker,做了一些修改.
曾经修改了/lib/systemd/system/docker.service
验证:
回到另一台机器,发现docker images完全正常
发现我在那个机器配置了 DOCKER_HOST环境变量
但docker 所在服务却没有配置DOCKER_HOST环境变量
解决:
在.bashrc或.zshrc中配置
我的是vim ~/.zshrc
加入
原因分析
没有启动unix:///var/run/docker.sock
注释掉之前的 ExecStart 添加下面这句
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
systemctl stop docker.service
systemctl daemon-reload
systemctl start docker.service
调试小技巧:
如果docker服务无法启动,执行
dockerd -H unix:///var/run/docker.sock
看报错情况
journalctl -u docker
查看启动日志
很久之前unix:///var/run/docker.sock写成了unix://var/run/docker.sock
少了一个**/** 怎么也启动不了 就注释掉了这句话,导致了 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
折腾一下午 ,终于以unix://var/run/docker.sock形式启动了