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

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

下面是我运行的命令的历史。

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

但它给出了错误:

unix:///var/run/ Docker .sock无法连接到Docker守护进程。docker守护进程正在运行吗?


当前回答

在Windows 11和ubuntu 22上执行命令wsl.exe——update .exe 在powershell帮助我通过容器运行docker,因为它是在Windows 10上

在此之前,我得到无法连接到Docker守护进程在unix:/var/run/ Docker .sock。docker守护进程正在运行,这在我的windows 10 ubuntu 20.04上没有发生,设置相同。

从普通的sudo服务docker启动

其他回答

当消息出现时,我试图在AWS的一个实例中运行docker(刚刚安装)。 我只是写sudo服务docker启动和工作为我很好。

请参阅AWS与Docker

在我的情况下,当做sudo dockerd——debug时,它显示了这个错误:“启动守护进程失败:初始化网络控制器错误:获取控制器实例错误:创建NAT链失败DOCKER: Iptables not found”

为了解决这个问题,我输入:

sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
sudo systemctl start docker.service

欲了解更多详情,请访问:https://forums.docker.com/t/failing-to-start-dockerd-failed-to-create-nat-chain-docker/78269

如果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/<your-version-number>/run/docker.pid
snap stop docker
snap start docker

请确保将‍‍‍‍<your-version-number>‍替换为适当的版本号。

这对你来说可能有点晚了,但希望它能帮助别人在码头工人的丛林中找到自己的路。 该问题可能来自tcp端口绑定问题 验证该文件是否存在

/etc/systemd/system/docker.service.d

这是默认的UNIX套接字监听覆盖文件。该文件实际上可能是空的,但我发现它存在的事实有时会导致一些头痛,就像你所面临的。 如果存在1.单击“确定”。然后2。如果不是,直接转到2。

1. $ sudo rm -rf /etc/systemd/system/docker.service.d

2. $ sudo systemctl deamon-reload

我发现这里的一些建议忽略了实际守护进程无法加载的错误

和docker一起玩的好朋友是

$ systemctl status docker.service

2022的解决方案

这工作在我身边:

在你的卷中添加以下内容:

volumes:
 - "/var/run/docker.sock:/var/run/docker.sock"

之后,执行以下命令

 sudo  chown 1000:1000 /var/run/docker.sock

请注意1000是用户的ID。要了解它,执行以下命令:

id

或者,如果$USER包含你的用户名:

 sudo  chown $USER:$USER /var/run/docker.sock