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


当前回答

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

请参阅AWS与Docker

其他回答

下面是我在Linux上使用的解决方案

Systemctl start docker。

只是增加了知识储备。我觉得这个视频很有用。我没有定义DOCKER_HOST。我有一个/etc/wsl.conf,它有:

[automount]
root = /
options = "metadata"

重启几次后,docker hello-world工作了。

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

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

错误:

完成以上步骤后。

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

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

使用 Docker start <your_container_name>

然后使用连接数据库 mssql -u <你的用户名> -p <你的密码>

如果在第一步中出现错误,那么docker将运行并执行第二步。

注意:我使用Mac作为我的主要操作系统,这对于基于Unix的操作系统可能是相同的答案。如果不是!提前说声抱歉。