我尝试docker run hello-world
在 debian bullseye 机器上执行,在该机器上我没有 root 用户权限,但可以使用sudo
。
我按照 docker 文档安装了 docker (v19.03.13) sudo
。docker 可以启动,sudo systemctl start docker
并且sudo systemctl status docker
服务按预期运行。sudo systemctl status docker.socket
看起来也很正常。
我docker.sock
在 找到一个文件/var/run/
。
现在,当尝试运行docker run hello-world
(不sudo
!)时,我收到一条错误消息:
docker: Cannot connect to the Docker daemon at unix:///home/<myuser>/.docker/run/docker.sock. Is the docker daemon running?.
看起来,docker 服务正在错误的目录中寻找 docker.sock。
我已经尝试过以下方法,但是没有效果:
sudo systemctl stop/start/restart docker
(我在有关此问题的讨论中找到了标准答案)- 将我的用户添加到docker组:
sudo usermod -aG docker $USER
。命令less /etc/group | grep docker
产生docker:x:999:myUserName
ls -la /var/run/docker.sock
--> (由https://unix.stackexchange.com/a/279785/335075srw-rw---- 1 root docker 0 Jul 17 17:48 /var/run/docker.sock
建议)unset DOCKER_HOST
(例如https://stackoverflow.com/a/69674630/1552080)。sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/system
(这种方法成功过一次,但在我退出并再次登录后就失效了)
我能做的就是跑步sudo docker run hello-world
。