我已经应用了互联网上所有可用的解决方案,但我仍然不能运行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守护进程正在运行吗?


当前回答

这对你来说可能有点晚了,但希望它能帮助别人在码头工人的丛林中找到自己的路。 该问题可能来自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

其他回答

确保/etc/docker/daemon.json路径下的信息

{
  "registry-mirror": [
    "https://registry.docker-cn.com"
  ],
  "insecure-registries": [
    "192.168.199.100:5000"
  ]
}

删除

"insecure-registries": [
    "192.168.199.100:5000"
]

运行良好 在这里输入图像描述

我看了所有的答案,没有找到任何接近我的情况。最后,问题是docker在我的系统上安装了两次,一次是通过snap,另一次是通过便利脚本。所以,如果有人遇到这个问题,一定要检查docker没有安装在多个地方,因为这会导致一些非常奇怪的行为。

在root模式下,执行systemctl start docker命令

然后,可以运行systemctl status docker命令查看状态

这对我来说是可行的,如果你使用Ubuntu 16或18(14也可以),它可能只适用于你。试一试很容易:

打开Ubuntu软件,输入Docker。 卸载docker (108 mb),如果它是预安装的。 安装码头工人 现在运行这些命令,看看是否会出现同样的错误

错误:

完成以上步骤后。

正如你所看到的,它起作用了:)

它发生在docker还没有启动的时候。

请检查docker状态

$ sudo systemctl status docker

然后启动并启用docker,并重新检查状态

$ sudo systemctl start docker && sudo systemctl enable docker && sudo systemctl status docker

这是它。现在检查docker的最后一步工作正常

$ sudo docker run hello-world