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


当前回答

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

道克/ var /管理/袜子。

如果它仍然不能工作,那么,在安装之后,简单地停止docker守护进程:

sudo service docker stop

并且,运行以下命令在后台启动守护进程:

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

为了使使用Docker更容易,您应该将您的用户名添加到 Docker users组。方法将用户添加到组中 命令如下:

sudo usermod -aG docker $USER

此外,docker Linux安装后步骤的官方文档中也提到了这一步。

Ubuntu 16.04用户可以执行以下步骤:

在文件/lib/systemd/system/docker中。服务的改变:

ExecStart=/usr/bin/dockerd fd://

to

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375

在文件/etc/init.d /码头工人的改变:

DOCKER_OPTS=

to

DOCKER_OPTS="-H tcp://0.0.0.0:2375"

然后重启你的机器,开始使用docker。

其他回答

在Ubuntu 20.04和Docker 20.10.11版本上,以非root用户运行:

sudo service docker start

然后检查状态

sudo service docker status

显示

* Docker is running

但是尝试任何docker命令,例如

docker images

显示相同的错误

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

运行下面的程序可以解决这个问题

sudo service docker restart

重启解决了这个问题,而启动没有

我从snap存储库安装docker。所以我也不得不从snap(运行Ubuntu)开始。

Sudo snap start docker

否则,您也可以从它们的存储库中安装它。

在Ubuntu 22上,“sudo service docker start”为我工作。

vikaspiprade@AUMEL-P7750-VP:~$ sudo docker run hello-world
docker: Cannot connect to the Docker daemon at 
unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.
vikaspiprade@AUMEL-P7750-VP:~$ sudo /var/run/docker.sock
sudo: /var/run/docker.sock: command not found
vikaspiprade@AUMEL-P7750-VP:~$ /var/run/docker.sock
-bash: /var/run/docker.sock: Permission denied
vikaspiprade@AUMEL-P7750-VP:~$ sudo service docker stop
* Docker already stopped - file /var/run/docker-ssd.pid not found.
vikaspiprade@AUMEL-P7750-VP:~$ sudo service docker start
* Starting Docker: docker                                                                                       
[ OK ]
vikaspiprade@AUMEL-P7750-VP:~$

对我来说,解决方案就是确保我安装了正确的Docker包。例如,对于Ubuntu,贬值包是:

码头工人 docker-engine docker.io containerd runc

安装检查https://docs.docker.com。在撰写本文时,提供了Ubuntu、CentOS、Debian和Fedora的使用说明。

如果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>‍替换为适当的版本号。