无法连接到unix上的Docker守护程序:/var/run/docker.sock。 docker守护程序是否正在运行?

时间:2017-06-21 14:18:54

标签: linux ubuntu docker ubuntu-14.04

我已经应用了互联网上的所有解决方案,但我仍然无法运行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

39 个答案:

答案 0 :(得分:66)

你可以试试这个:

systemctl start docker

它对我来说很好。

Ps:如果有命令你不能没有sudo,请试试这个:

gpasswd -a $USER docker

答案 1 :(得分:24)

在从主要文档重新安装了DOCKER之后,我才遇到这个问题。 对我来说,问题是安装后立即没有运行该服务。

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

$ sudo service --status-all 
$ sudo service docker start
$ sudo service docker start

答案 2 :(得分:21)

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

请务必更换' 179'使用适当的版本号

答案 3 :(得分:21)

对我有用:

sudo systemctl unmask docker
sudo systemctl start docker

答案 4 :(得分:13)

首先,尝试使用 sudo ,因为当前用户可能没有与docker守护程序通信的访问权限,即 /var/run/docker.sock

如果它仍然无效,那么,在安装之后,只需将docker守护程序停止为

即可
$ sudo service docker stop

然后,运行以下命令在后台启动守护程序

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

为了更轻松地使用Docker,您应该将用户名添加到 Docker用户组。将用户添加到组中可以使用 通过在末尾添加用户名来命令下面的命令

$ sudo usermod -aG docker

此外,此步骤在docker的官方文档中提及Linux的安装后步骤(https://docs.docker.com/engine/installation/linux/linux-postinstall/

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 =&#34; -H **** tcp://0.0.0.0:2375 &#34;

然后重新启动计算机。并且,开始玩docker。

答案 5 :(得分:10)

只要运行

sudo dockerd

那么您就很好了。

答案 6 :(得分:9)

这对我来说很好。.

服务docker重新启动

答案 7 :(得分:8)

解决此问题的简便方法,对我来说还可以

systemctl start docker
systemctl enable docker
systemctl restart docker

答案 8 :(得分:6)

这通常发生在您可能无法停止停靠的情况下。

解决问题

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

然后&#34; docker run ....&#34;下载图像并像往常一样启动容器

答案 9 :(得分:3)

这是在Linux上适用于我的解决方案

systemctl start docker

答案 10 :(得分:2)

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

然后,您可以通过运行systemctl status docker

检查状态

答案 11 :(得分:2)

在安装docker并运行后,我还收到以下错误消息:docker run hello-world #无法通过Unix /var/run/docker.sock连接到Docker守护程序。泊坞窗守护程序正在运行吗?

这是一个解决方案,对我有用。 环境

  • Windows 10(不要忘记在Windows上启用:“设置”>“更新和安全”>“开发人员”模式)
  • Ubuntu 18.04 LTS
  • Docker桌面版本2.3.0.2(45183)
    • 在Docker桌面中启用:在tcp上公开守护程序://本地主机:2375不带TLS
    • Docker桌面也必须正在运行(已连接到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

用于在以下版本中安装docker的命令:5:18.09.9〜3-0〜ubuntu-bionic

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的命令

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

注意:将上面的命令放在您的个人资料中,以ubunto开头 例如:echo“ export DOCKER_HOST =” tcp://0.0.0.0:2375“” >>〜/ .bashrc

将用户添加到docker组

sudo usermod -aG docker $USER

重新启动ubuntu

(关闭并再次打开ubuntu窗口) 或运行:

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/ 会话:安装DOCKER引擎

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

然后安装所需版本的docker:

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

答案 12 :(得分:2)

当前答案均不适用于该错误的我的版本。我正在使用Ubuntu 18的桌面版本。以下两个命令解决了该问题。

let divElement = document.getElementById('divId'); let height = document.defaultView.getComputedStyle(divElement).height;

sudo snap connect docker:home :home

答案 13 :(得分:2)

当docker服务未运行或登录用户没有访问docker的权限时通常会出现此异常,并且通常在RedHat中出现

使用以下命令可以解决该问题

sudo服务docker start

enter image description here

答案 14 :(得分:2)

我在关闭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并运行世界。

干杯!

答案 15 :(得分:1)

我想如果您将WSL与GUI一起使用,则可以尝试

sudo /etc/init.d/docker start

答案 16 :(得分:1)

我从快照存储库安装了docker。因此,我还必须从快照(运行Ubuntu)开始。

sudo snap start docker

否则,您也可以从他们的repositories安装它。

答案 17 :(得分:1)

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

答案 18 :(得分:1)

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

答案 19 :(得分:1)

在ubuntu中使用它 导出DOCKER_HOST = tcp:// localhost:2375

答案 20 :(得分:0)

export DOCKER_HOST = tcp:// localhost:2375非常适合那些没有sudo访问权限并且用户无权访问unix:///var/run/docker.sock

的人。

答案 21 :(得分:0)

如果您尝试在 Windows 中使用 wsl 2 linux 子系统安装 docker 请阅读此文档 https://docs.docker.com/docker-for-windows/wsl/ 并检查这个命令是否被执行

QRadioButton

并签入您的 Windows 操作系统 docker->settings->Resources->Enable 与其他发行版的集成:已签入并重新启动

答案 22 :(得分:0)

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

在撰写此贡献时,this great manual 确实提到了重启 RPi 的必要性,但前提是在设置“非 root 用户到 Docker 组”之后。

HTH,如果有人像我一样错过这个..

答案 23 :(得分:0)

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

答案 24 :(得分:0)

只是添加到知识库中。我发现这 video 很有帮助。我没有 DOCKER_HOST 定义。我确实有一个 /etc/wsl.conf 具有:

[automount]
root = /
options = "metadata"

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

答案 25 :(得分:0)

我在gitlab CI运行node:lts image时遇到了相同的问题:

  • 我刚刚重新启动了docker守护进程并重新启动了容器,它对我有用。

答案 26 :(得分:0)

我遇到了同样的问题。就我而言,VPN 是罪魁祸首。关闭 VPN 有助于成功安装。

答案 27 :(得分:0)

这对我有用,如果您使用的是Ubuntu 16或18,它可能只对您有用(14也可以)。容易尝试:

转到Ubuntu Software,输入Docker。 如果docker(108 mb)已预先安装在此,则将其卸载。 安装泊坞窗 现在运行命令,看看是否出现相同的错误

错误:

enter image description here

完成上述步骤后。 enter image description here

如您所见,它起作用了:)

答案 28 :(得分:0)

enter image description here

我只是简单地忘记了在Mac中运行Docker桌面,运行Docker Desktop之后,您将很高兴。

答案 29 :(得分:0)

对我来说,解决方案是简单地确保我安装了正确的Docker软件包。例如,对于Ubuntu,depreciated packages是:

  • docker
  • docker-engine
  • docker.io
  • 容器
  • runc

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

答案 30 :(得分:0)

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

解决方案:从官方网站docker install下载docker二进制文件,解压缩并遵循安装步骤。

答案 31 :(得分:0)

出现此消息时,我试图在AWS实例中运行docker(仅安装)。 我只是写sudo service docker start并能正常工作。

另请参见AWS with Docker

答案 32 :(得分:0)

适用于在安装时遇到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

答案 33 :(得分:0)

确保此路径/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"
]

并且运行良好 enter image description here

答案 34 :(得分:0)

我在root上运行并在下面尝试过,它有效:

service docker start

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

答案 35 :(得分:0)

重新启动计算机可以为我解决问题。 (macOS Mojave版本10.14)

答案 36 :(得分:-1)

使用 docker start <your_container_name>

然后通过使用连接到数据库 mssql -u <yourUsername> -p <yourPassword>

如果您在第一步中遇到错误,则说明docker正在运行,请继续执行第二步。

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

答案 37 :(得分:-2)

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

答案 38 :(得分:-2)

此问题可以通过运行永久解决 1. systemctl启用docker 2.服务docker start