无法通过unix:/var/run/docker.sock连接到Docker守护程序。泊坞窗守护程序正在运行吗?


171

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

如果您运行ps aux | grep docker,您看到守护进程正在运行吗?
Rome_Leader


@Rome_Leader看到我的问题中的输出...
Umair Ayub

3
试试这个:sudo service
docker

2
您可以使用以下命令sudo service docker status查看
docker

Answers:


159

您可以尝试以下方法:

systemctl start docker

对我来说很好。

PS:如果有一些命令,如果没有sudo就无法执行,请尝试以下操作:

gpasswd -a $USER docker

10
运行第一个命令,我遇到一个错误: Failed to start docker.service: Unit docker.service is masked.所以,我必须运行以下命令: systemctl unmask docker.service systemctl unmask docker.socket systemctl start docker.service
克里斯·潘

50

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


如何防止这种情况发生?每次打开PC时,都必须删除docker.pid!
哈米德雷扎

46

赶紧跑

sudo dockerd

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


10
这是唯一对我有用的命令。我认为荒谬的是,必须跳很多圈才能使Docker启动并运行。
Homunculus Reticulli

3
它给了我错误Error starting daemon: Devices cgroup isn't mounted
Vineet'DEVIN'Dev

@fepegar可能您没有正确安装
docker

@YashPokar确实,我最终重新安装了,现在一切正常。谢谢。
fepegar

在docker容器中对我有用的唯一命令以启动docker容器。需要它进行代码构建,以在构建时创建自己的环境。:-)
我们是博格

21

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

如果仍然无法使用,则在安装后,只需停止docker daemon,

$ 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 $USER

此外,Linux的docker安装后步骤的官方文档(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 =“-H **** tcp://0.0.0.0:2375

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


1
跑步sudo nohup docker daemon -H http://tcp://0.0.0.0:2375 () -H http://unix:///var/run/docker.sockbash: syntax error near unexpected token ('`
Umair Ayub

1
我正在运行redhat linux
Umair Ayub

噢抱歉。额外的字符(),已更新。哪个版本的RHEL?只需检查$ DOCKER_HOST可获得什么价值?
mohan08p

$ sudo systemctl使docker在引导时启动docker服务。
mohan08p

我现在正尝试在CentOS Linux release 7.3.1611 (Core)... 上安装Docker, 但现在错误是Your Linux kernel version 2.6.32-042stab116.2 is not supported for running docker. Please upgrade your kernel to 3.10.0 or newer....我可以使用yum update kernel... 更新内核吗?问题是,它将删除服务器上的所有内容吗?它与网站上运行的实时服务器,我不想搞砸它。
Umair Ayub

9

如果您可能尚未停止docker,通常会发生这种情况。

解决

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

然后“ docker run ....”下载图像并照常启动容器


8

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

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

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

7

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

service docker start

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

3
如果这在您的主机上有效,那么您实际上没有root密码。有权访问该端口的任何人都可以以root用户身份在主机上运行命令。
米奇(Bitch)

6

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

干杯!


我曾与须藤做对的Ubuntu 18.04
Basanth


2

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


如果这在您的系统上有效,那么您实际上没有root密码。有权访问该端口的任何人都可以在主机上以root用户身份运行命令。
BMitch

2

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


这对于通常没有root访问权但想轻松成为您的主机root用户的人也很有用。有权访问该端口的任何人都可以以root用户身份运行命令。
米奇(Bitch)

@BMitch关心详细吗?
弗朗·马佐亚

@FranMarzoa来自另一个您不信任的用户,甚至另一个主机,您都可以docker run使用容器中的root用户(具有特权)在pid和network上使用主机名称空间运行任何命令,然后在该框中安装根文件系统。
BMitch

2

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

另请参阅AWS与Docker


2

在此处输入图片说明

我只是忘了在我的Mac中运行Docker Desktop,在运行Docker Desktop之后,一切都会好起来的。


2

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

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

sudo服务docker start

在此处输入图片说明


1

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

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

1

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

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

错误:

在此处输入图片说明

完成上述步骤后。 在此处输入图片说明

如您所见,它的工作原理是:)


1

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

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


1

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

sudo snap connect docker:home :home

sudo snap start docker



0

对我而言,解决方案是仅确保已安装正确的Docker软件包。例如,对于Ubuntu,已折旧的软件包为:

  • 码头工人
  • 泊坞窗引擎
  • docker.io
  • 装箱的
  • Runc

对于安装,请检查https://docs.docker.com。在编写本文时,提供了有关UbuntuCentOSDebianFedora的说明。


您错过了一些步骤:单击此链接以签署回购协议。medium.com/@sebagomez/…–
罗伯特

@Robert,上面我还参考了官方的docs.docker以获取PGP密钥。这比用户从此站点或介质复制它更安全。
RikH

我尝试了ubuntu步骤,但这些步骤无效。需要签名过程和我提供的链接。
罗伯特

@Robert,谢谢,我删除了不完整的说明,而只是参考了官方文档。
RikH

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"
]

并运行良好,请 在此处输入图片描述


0

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


0

docker start <your_container_name>

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

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

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


0

安装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上公开守护进程://本地主机:没有TLS的2375-Docker桌面也必须正在运行(连接到Docker Hub ...只需登录)

安装ubuntu后,更新存储库

sudo apt-get更新

通过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键添加-

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

须藤apt键指纹0EBFCD88

更新资料库

sudo apt-get更新

更新docker仓库

sudo add-apt-repository \“ deb [arch = amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs)\稳定”

再次更新存储库

sudo apt-get更新

在以下版本中安装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的命令

导出DOCKER_HOST =“ tcp://0.0.0.0:2375”

注意:将上面的命令放在您的配置文件中,以ubunto ex开头:echo“ export DOCKER_HOST ='tcp://0.0.0.0:2375'” >>〜/ .bashrc

将用户添加到Docker组

sudo usermod -aG泊坞窗$ USER

重启ubuntu

(关闭并再次打开ubuntu窗口)

测试安装(不要在docker命令之前使用更多sudo(这将产生错误),用户“ root”已包含在docker组中)

docker运行hello-world

应该显示以下信息

您好,Docker!此消息表明您的安装似乎正常工作。

注意:如果失败,请再次运行命令:export DOCKER_HOST =“ tcp://0.0.0.0:2375”

导出DOCKER_HOST =“ tcp://0.0.0.0:2375”

参考:https ://docs.docker.com/engine/install/ubuntu/会话:安装DOCKER引擎

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

apt-cache麦迪逊docker-ce

然后安装所需版本的docker:

须藤apt-get install docker-ce = docker-ce-cli = containerd.io


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

-1

通过运行1. systemctl enable docker 2. service docker start可以永久解决此问题。


似乎我service start docker每次重启计算机时都需要启动docker服务。
普兰·库玛·萨卡

@PranKumarSarkar如果您运行“ sudo systemctl enable
docker
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.