当前位置: 首页>>技术教程>>正文


linux – 无法通过unix:/var/run/docker.sock连接到Docker守护程序。泊坞窗守护程序正在运行吗?

, , ,

问题描述

我已经应用了互联网上所有可用的解决方案,但仍然无法运行Docker。

我想在服务器上使用Scrapy Splash。

这是我运行的命令的history

docker run -p 8050:8050 scrapinghub/splash
sudo docker run -p 8050:8050 scrapinghub/splash
sudo usermod -aG docker $(whoami)
sudo docker run -p 8050:8050 scrapinghub/splash
newgrp docker
sudo docker run -p 8050:8050 scrapinghub/splash
reboot
sudo docker run -p 8050:8050 scrapinghub/splash
docker run -p 8050:8050 scrapinghub/splash

您可以看到我也尝试重新启动服务器,但是它没有帮助。

查看ps -aux | grep docker的输出

root@mani:/var/www/html# ps aux | grep docker
root      8524  0.0  0.8 127904 13964 ?        Ssl  17:21   0:00 /usr/bin/dockerd --raw-logs
root      8534  0.0  0.3  90588  5012 ?        Ssl  17:21   0:00 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc
root      8543  0.0  0.0   8812   764 pts/1    S+   17:21   0:00 grep --color=auto docker
root     16356  0.0  0.0  17200   964 pts/1    S    17:14   0:00 newgrp docker
root     20080  0.0  0.0  17200   964 pts/1    S    17:06   0:00 newgrp docker
root     30221  0.0  0.0  17200   964 pts/1    S    17:09   0:00 newgrp docker

最佳答案

您可以尝试以下方法:

systemctl start docker

对我来说很好。

附言:如果有没有sudo不能执行的命令,请尝试以下操作:

gpasswd -a $USER docker

次佳答案

如果Docker不能彻底关闭,则会出现此错误。以下答案适用于docker snap软件包。

运行snap logs docker并查找以下内容:

Error starting daemon: pid file found, ensure docker is not running or delete /var/snap/docker/179/run/docker.pid

删除该文件并重新启动docker对我有用。

rm /var/snap/docker/179/run/docker.pid
snap stop docker
snap start docker

确保用适当的版本号替换’179′

第三种答案

赶紧跑

sudo dockerd

这样您就很好了。

第四种答案

首先,尝试使用sudo,因为当前用户可能没有访问权限来与docker守护进程通信,即/var/run/docker.sock

如果仍然无法使用,则在安装后,只需停止docker daemon,

$ sudo service docker stop

然后,运行以下命令以在后台启动守护程序,

$ sudo nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

为了简化使用Docker的工作,应将用户名添加到Docker用户组。可以使用以下命令将用户添加到组中

$ sudo usermod -aG docker $USER

另外,此步骤在Linux的docker Post-installation步骤的官方文档(https://docs.docker.com/engine/installation/linux/linux-postinstall/)中得到了提及。

Ubuntu 16.04用户可以按照以下步骤操作,

内部文件/lib/systemd/system/docker.service更改:ExecStart = /usr /bin /dockerd fd://和ExecStart = /usr /bin /dockerd -H tcp://0.0.0.0:2375

内部文件/etc/init.d/docker更改:

DOCKER_OPTS =带有DOCKER_OPTS =“-H **** tcp://0.0.0.0:2375”

然后重新启动计算机。并且,开始使用docker。

第五种答案

如果您可能尚未停止docker,通常会发生这种情况。

解决

service docker stop
cd /var/run/docker/libcontainerd
rm -rf containerd/*
rm -f docker-containerd.pid
service docker start

然后“ docker run ….”下载图像并照常启动容器

第六种答案

这是在Linux上对我有效的解决方案

systemctl start docker

第七种答案

我在root上运行并在下面尝试过,它有效:

service docker start

export DOCKER_HOST="tcp://0.0.0.0:2375"

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8023.html,未经允许,请勿转载。