unix:/var/run/ Docker .sock无法连接到Docker守护进程。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

但它给出了错误:

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

1595056 次浏览

这通常发生在你没有停止docker的时候。

来解决

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

然后“docker run....”下载映像并像往常一样启动容器

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

# EYZ0

如果它仍然不能工作,那么,在安装之后,简单地停止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组。方法将用户添加到组中 命令如下:< / p >
sudo usermod -aG docker $USER

同样,这个步骤在docker Linux后期安装步骤的官方文档中提到过。

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。

你可以试试这个:

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

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

对于gitlab CI运行node:lts image,我也遇到了同样的问题:

  • 我只是重新启动docker守护进程和重新启动容器,它为我工作。

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

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

错误:

enter image description here

以上步骤完成后。 # EYZ0 < / p >

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

你就跑

sudo dockerd

Dockerd是docker容器的守护服务,因为它不是在后台运行,我们不能采取任何与服务相关的操作,需要重新启动。

在ubuntu中使用这个 出口DOCKER_HOST = tcp: / / localhost: 2375 < / p >

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

# EYZ0。

export DOCKER_HOST=tcp://localhost:2375对于没有sudo访问权限和用户没有unix:///var/run/docker.sock访问权限的人来说是完美的

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

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

安装检查https://docs.docker.com。在撰写本文时,已为UbuntuCentOSDebianFedora提供了说明。

我在Linux上使用yum (yum install docker)安装docker时也遇到了同样的问题。

解决方法:从官方网站码头工人安装下载docker二进制文件,解包并按照安装步骤安装。

当消息出现时,我试图在AWS实例中运行docker(刚安装)。 我只写sudo service docker start,对我来说很好

参见AWS与Docker

确保该路径中的信息为/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"
]

,运行良好 # EYZ0 < / p >

我在root上运行并尝试如下,它起作用了:

service docker start


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

该问题可以通过运行永久解决 1. Systemctl启用docker 2. Service docker start

. sh

我在拉集装箱时关闭docker后遇到了这个问题:

docker pull mongo

起初,我得到奇怪的错误,所以我清除docker:

sudo apt-get purge docker.io

和重新安装:

sudo apt-get install docker.io

所有这些都无济于事;我甚至不能运行“hello-world”;容器。

至少对我来说,正确的解决方法是:

systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service

在这之后,我可以拉着mongo跑“hello world”。

enter image description here

我只是简单地忘记了在我的mac上运行Docker桌面,在运行Docker桌面之后,你就会很好了。

这可能与硬盘上没有剩余的磁盘空间有关。请确保设备上有剩余空间,如果没有剩余空间,Docker将无法启动。

这个异常发生在docker服务没有运行或者登录用户没有权限访问docker的情况下,通常在RedHat中出现

使用下面的命令可以解决这个问题

Sudo服务docker启动

enter image description here

目前没有一个答案适用于我的这个错误版本。我使用的是Ubuntu 18的桌面版。下面两个命令解决了这个问题。

# EYZ0

# EYZ0

< p >使用 # EYZ0 < / p >

则通过using连接数据库 # EYZ0 < / p >

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

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

我刚刚从主文档中重新安装了DOCKER。 对我来说,问题是在安装后,服务立即不运行

这些命令将帮助您确保docker已经启动并运行,以便您的run命令可以找到它:

$ sudo service --status-all
$ sudo service docker start
$ sudo service docker start
我也收到了下面的错误消息,在安装docker并运行:docker run hello-world unix: /var/run/docker.sock无法连接到Docker守护进程。docker守护进程正在运行吗?< / p > 这里有一个解决方案,对我来说很有效。 环境< / p >
  • Windows 10(不要忘记在Windows上启用:settings s>更新和安全>开发人员模式)
  • Ubuntu 18.04 LTS
  • Docker Desktop版本2.3.0.2 (45183)
    • 在Docker Desktop中启用:在tcp: // localhost: 2375上不带TLS暴露守护进程
    • Docker Desktop也必须正在运行(连接到Docker Hub…登录即可)

安装ubuntu后,更新存储库

sudo apt-get update

通过HTTPS使用存储库

sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

添加Docker官方GPG密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

确保您现在拥有带有指纹的钥匙

sudo apt-key fingerprint 0EBFCD88

更新存储库

sudo apt-get update

更新docker存储库

sudo add-apt-repository "deb [arch = amd64] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) stable "

再次更新存储库

sudo apt-get update

命令:5:18.09.9 ~ 3-0 ~ ubuntu-bionic安装docker

sudo apt-get install docker-ce = 5: 18.09.9 ~ 3-0 ~ ubuntu-bionic docker-ce-cli = 5: 18.09.9 ~ 3-0 ~ ubuntu-bionic containerd.io

命令设置DOCKER_HOST . conf

export DOCKER_HOST="tcp://0.0.0.0:2375"
注意:把上面的命令放在你的配置文件中,以ubunto开始 echo "export DOCKER_HOST="tcp://0.0.0.0:2375"在比;~ / . bashrc < / p >

将用户添加到docker组

sudo usermod -aG docker $USER

重新启动ubuntu

(关闭并重新打开ubuntu窗口) 或运行:< / p >

source ~/.bashrc

测试安装(不要在docker命令之前使用更多sudo(它会给出一个错误),用户"root"已经包含在docker组中)

docker run hello-world

应该会显示下面的消息

你好来自Docker!

.

.

注意:如果失败,请重新执行命令:

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

参考:https://docs.docker.com/engine/install/ubuntu/ Session: INSTALL DOCKER ENGINE

. sh 对于可以与ubuntu一起安装的其他版本的docker,请使用下面的命令查看存储库: Apt-cache Madison docker-ce

然后安装所需版本的docker:

sudo apt-get install docker-ce = <VERSION_STRING> docker-ce-cli = <VERSION_STRING> containerd.io

对于所有在安装Docker时遇到问题的人。

一个指向docker服务失败的错误,执行下面的命令。

$ sudo apt update


$ sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common


$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -


$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"


$ sudo apt update


$ apt-cache policy docker-ce


$ sudo apt install docker-ce

这对我来说很有效:

sudo systemctl unmask docker
sudo systemctl start docker

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

然后,您可以通过运行systemctl status docker来检查状态

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

# EYZ0

否则你也可以从他们的存储库安装它。

我想如果你正在使用带有GUI的WSL,那么你可以尝试一下

sudo /etc/init.d/docker start

重启系统对我有用。这可能是暂时的问题

这对我来说很好…!

service docker restart

解决这个问题的简单方法,试试这个

sudo su
systemctl start docker
systemctl enable docker
systemctl restart docker

sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl restart docker

我也有同样的问题。在我的案例中,VPN是罪魁祸首。关闭VPN有助于成功安装。

我在终端启动后启动docker时遇到了这个问题。重新启动终端或承载终端的进程(如vscode)解决了这个问题。

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

[automount]
root = /
options = "metadata"

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

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

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

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

.

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


2. $ sudo systemctl deamon-reload

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

和docker一起玩的好朋友是

$ systemctl status docker.service

对于刚安装的人;尝试像我一样在RaspberryPi (RPi)上运行docker, 我需要重启我的RPi 4B+来解决这个问题,并实际运行docker守护进程。

在写这篇文章的时候,这本很棒的手册确实提到了重启RPi的必要性,但是只有在设置“非根用户到Docker组”之后。

HTH,如果有人像我一样想念这个…

如果您正在尝试在windows下安装带有wsl 2 linux子系统的docker,请阅读文档并检查是否执行了此命令:

wsl.exe --set-version (distro name) 2

也检查你的Windows OS docker->settings->Resources->Enable integration和其他发行版:被检查并重新启动。

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

请检查docker状态

# EYZ0

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

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

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

$ sudo docker run hello-world

我没看到有人提到这个解决方案,所以我把它贴出来,说不定能帮到别人。我在MacOS机器上遇到了这个错误。原因是我在dotfiles中设置了DOCKER_HOST环境变量。通过unset DOCKER_HOST取消设置。我在Mac的官方docker文档中找到了这个技巧:https://docs.docker.com/desktop/mac/troubleshoot/#workarounds-for-common-problems

如果你使用MAC,那么在finder中输入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

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

对于Linux运行

# EYZ0

但是,如果你在mac上使用Docker客户端,它就不起作用了。试试下面的代码

# EYZ0

https://forums.docker.com/t/using-pycharm-docker-plugin-with-docker-beta/8617/9

这个解决方案向世界开放了2376端口……由于TLS未启用,这是一个坏主意,因为同一网络上的任何人都可以劫持您的docker守护进程

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在我的系统上安装了两次,一次是在snap上,另一次是通过方便脚本安装的。因此,如果有人遇到这个问题,一定要检查docker没有安装在多个地方,因为这可能会导致一些非常奇怪的行为。

Ubuntu 22.04是我的操作系统。在进行了广泛的研究和浏览了大量网站后,我发现以非root用户运行Docker会创建一个不同的上下文。使用下面列出的命令解决了我的问题。

docker context ls
docker context use default

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:~$

enter image description here

这在我的情况下是有效的:

sudo service docker start

当我没有登录到Docker时,我收到了这个错误消息。在进行更高级的故障排除之前,请确保您已登录到Docker。在mac上,打开Docker桌面应用程序并登录。这为我修正了错误。

启动docker服务时,请确保VPN已关闭

码头工人。sock作为docker CLI和docker守护进程之间的通信通道。您可以使用这个命令简单地运行您的容器。

docker run -v /var/run/docker.sock:/var/run/docker.sock  <ImageName>:latest

对我来说,docker真的没有运行,缺少以下命令来启动它:

systemctl --user start docker-desktop