无法连接到 unix:/var/run/docker.sock 上的 Docker 守护程序。docker 守护程序是否正在运行?
- 2024-10-10 09:29:00
- admin 原创
- 87
问题描述:
我已经应用了互联网上所有可用的解决方案,但仍然无法运行 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 守护进程是否正在运行?
解决方案 1:
你可以尝试一下这个:
systemctl start docker
对我来说效果很好。
PS:如果有一些命令没有 sudo 就无法执行,请尝试以下操作:
gpasswd -a $USER docker
解决方案 2:
快跑
sudo dockerd
dockerd 是 docker 容器的守护进程服务,由于它没有在后台运行,我们无法采取与该服务相关的任何操作,需要重新启动。
解决方案 3:
我刚刚按照主文档重新安装了 DOCKER,就遇到了这个问题。对我来说,问题是安装后服务没有立即运行。
这些命令将帮助您确保 docker 已启动并正在运行,以便您的运行命令可以找到它:
$ sudo service --status-all
$ sudo service docker start
解决方案 4:
修复此问题的简单方法,试试这个
sudo su
systemctl start docker
systemctl enable docker
systemctl restart docker
或者
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl restart docker
解决方案 5:
如果 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>
用适当的版本号替换。
解决方案 6:
我的操作系统是 Ubuntu 22.04。经过大量研究和浏览大量网站后,我发现以非 root 用户身份运行 Docker 会创建不同的上下文。我的问题已通过使用下面列出的命令得到解决。
docker context ls
docker context use default
解决方案 7:
我只是忘记在我的 Mac 上运行 Docker Desktop,运行 Docker Desktop 后,就可以开始了。
解决方案 8:
首先,尝试使用sudo
,因为当前用户可能没有与 docker daemon 通信的访问权限,即:
/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 $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。
解决方案 9:
如果您还没有停止 docker,通常会发生这种情况。
解决
service docker stop
cd /var/run/docker/libcontainerd
rm -rf containerd/*
rm -f docker-containerd.pid
service docker start
然后“docker run....”下载你的镜像并像往常一样启动容器
解决方案 10:
它对我有用:
sudo systemctl unmask docker
sudo systemctl start docker
解决方案 11:
这对我来说很好..!
service docker restart
解决方案 12:
我想如果你使用带有 GUI 的 WSL,那么你可以尝试
sudo /etc/init.d/docker start
解决方案 13:
在拉取容器时关闭 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”。
解决方案 14:
在 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:~$
解决方案 15:
如果您使用的是 MAC,只需在 Finder 中输入 docker,它就会自动解析。
解决方案 16:
在 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
重新启动解决了这个问题,但启动没有
解决方案 17:
我以 root 身份运行并尝试了以下操作,它有效:
service docker start
export DOCKER_HOST="tcp://0.0.0.0:2375"
解决方案 18:
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
解决方案 19:
有时,由于某种原因,Docker 关闭了我的 ubuntu 集成,然后我收到同样的Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
错误。
进入窗口右上角的 docker 桌面设置齿轮 > 资源 > WSL 集成,然后重新打开集成:
解决方案 20:
如果你使用的是MacOS
打开Docker 桌面应用程序
转到设置->高级。
您应该会看到一个复选框,其中有允许使用默认 Docker 套接字的选项。
默认情况下它未选中,因此打开它对我来说是有效的。
解决方案 21:
这是在 Linux 上对我有用的解决方案
systemctl start docker
。
解决方案 22:
安装 docker 并运行后,我也收到以下错误消息:docker run hello-world #Cannot connect to the Docker daemon at unix: /var/run/docker.sock. Is the docker daemon running?
这是一个对我有用的解决方案。环境
Windows 10(不要忘记在 Windows 上启用:设置>更新和安全>开发者模式)
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 中的 docker 命令: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 ENGINE
对于可以使用 ubuntu 安装的其他版本的 docker,请使用以下命令查看存储库:apt-cache madison docker-ce
然后安装所需版本的docker:
sudo apt-get install docker-ce = <VERSION_STRING> docker-ce-cli = <VERSION_STRING> containerd.io
解决方案 23:
这是因为 docker 还没有启动。
请检查docker状态
$ sudo systemctl status docker
然后启动并启用docker并重新检查状态
$ sudo systemctl start docker && sudo systemctl enable docker && sudo systemctl status docker
就是这样。现在检查docker是否正常工作的最后一步
$ sudo docker run hello-world
解决方案 24:
对于 Linux 运行
sudo dockerd
但是,如果你使用 Mac 版 Docker Client,它将无法工作。请尝试以下代码
$socat TCP-LISTEN:2376,reuseaddr,fork UNIX-CLIENT:/var/run/docker.sock
https://forums.docker.com/t/using-pycharm-docker-plugin-with-docker-beta/8617/9
该解决方法向全世界开放了 2376 端口……由于未启用 TLS,因此这是一个坏主意,因为同一网络上的任何人都可以劫持你的 docker 守护进程
解决方案 25:
这可能与硬盘上没有剩余磁盘空间有关。请确保设备上有剩余空间,如果没有剩余空间,Docker 将无法启动。
解决方案 26:
我在启动终端后启动 docker 时遇到了这个问题。重新启动终端或托管终端的进程(例如 vscode)解决了该问题。
解决方案 27:
在 WSL 中,运行dockerd
可解决问题。
$ sudo dockerd
解决方案 28:
对于 Debian,docker 安装程序使用 iptables 进行 nat。不幸的是,Debian 使用 nftables。您可以将条目转换为 nftables,或者只需设置 Debian 以使用旧版 iptables。
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
dockerd,切换到iptables-legacy后应该可以正常启动。
sudo service docker start
解决方案 29:
当出现该消息时,我正尝试在 AWS 实例中运行 docker(刚刚安装)。我只需编写代码sudo service docker start
,它对我来说就运行正常。
另请参阅AWS 与 Docker
解决方案 30:
确保此路径中的信息/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"
]
并且运行良好
在此处输入图片描述
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件