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

Cannot Connect to the Docker Daemon at ‘unix:///var/run/docker.sock’ 出坑方法,已经解决了 docker安装后,使用中经常出现的错误是:Cannot connect to the Docker daemon at (unix:///var/run/docker.sock. Is the docker daemon running?) 阅读详情

如何解决在 CentOS 7 上解决因未设置 Docker 开机自启而出现的 “Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?” 问题
在 CentOS 7 环境下,当我们在未开启 Docker 服务开机自启(systemctl enable docker)的情况下重启系统,再次执行任何 docker 命令时,往往会遇到令人头疼的报错信息——“Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?”。本篇文章将重点讲解如何在 CentOS 7 上快速定位并彻底解决该“Docker 守护进程连接失败”问题,涵盖从启动 Docker 服务、验证 /var/run/docker.sock 套接字权限,到编辑 /etc/docker/daemon.json 配置镜像加速,再到一键设置 Docker 开机自启的全流程操作步骤,帮助您在云原生部署中避免因 Docker 服务未自启造成的容器构建和镜像拉取失败。


目录

  1. 问题描述

  2. 环境与前提

  3. 错误现象分析

  4. 根本原因

  5. 解决思路概览

  6. 详细操作步骤

    1. 安装并启动 Docker 服务
    2. 验证 Docker 服务状态
    3. 编辑 /etc/docker/daemon.json 并配置镜像加速
    4. 重启 Docker 服务并验证
    5. 设置 Docker 开机自启
  7. 常见误区与排查建议

  8. 总结与最佳实践

  9. 参考资料


问题描述

在 CentOS 7 中执行任何 docker 命令时,均提示:

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

此时无论是否已执行 systemctl start docker,重启机器后再次使用 docker 命令依然报错,影响日常容器建设与部署工作。


环境与前提

  • 操作系统:CentOS 7.x
  • Docker 版本:Docker CE 或 Docker EE(18.x 及以上均适用)
  • 用户:具有 sudo 权限或 root 用户
  • 网络环境:访问 Docker Hub 速度较慢,推荐使用国内镜像加速

错误现象分析

  1. 执行命令 docker version 或 docker info 时,均报相同错误:

    $ docker info
    Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
    
  2. 查看 Docker 服务状态:

    $ systemctl status docker
    ● docker.service - Docker Application Container Engine
       Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
       Active: inactive (dead)
    

    其中可以看到 Loaded 一行的末尾标注为 disabled,说明该服务未设置自动启动,且当前处于未运行(inactive)状态。


根本原因

  • Docker 服务未设置开机自启
    CentOS 7 默认安装 Docker 后,docker.service 并不会自动随系统启动。未手动 enable 服务时,每次重启都需要手动执行 systemctl start docker,否则 /var/run/docker.sock(Docker 守护进程的 UNIX 套接字)不会存在,从而导致客户端无法连接守护进程。

解决思路概览

  1. 启动并验证 Docker 服务,确保能够正常运行。
  2. 配置国内镜像源加速,提升拉取镜像速度,避免因网络缓慢导致超时等其他问题。
  3. 设置 Docker 服务开机自启,保证重启后无需手动启动。
  4. 验证最终效果,确保 docker 命令恢复正常使用。

详细操作步骤

1. 安装并启动 Docker 服务

如果尚未安装 Docker,可参考官方文档安装。这里假设已安装。

# 安装完成后,先启动服务
sudo systemctl start docker

2. 验证 Docker 服务状态

# 查看服务状态
sudo systemctl status docker
  • 若显示 Active: active (running) 且无报错,即守护进程已正常运行。

  • 若仍未运行,可查看日志定位问题:

    sudo journalctl -u docker -n 50 --no-pager
    

3. 编辑 /etc/docker/daemon.json 并配置镜像加速

在国内环境下,访问 Docker 官方仓库速度较慢,建议添加国内镜像加速配置:

  1. 确保目录存在:

    sudo mkdir -p /etc/docker
    
  2. 编辑或新建文件 /etc/docker/daemon.json:

    sudo vi /etc/docker/daemon.json
    
  3. 添加如下内容,替换为你所选的镜像加速地址(以阿里云为例):

    {
      "registry-mirrors": [
        "https://<your-id>.mirror.aliyuncs.com"
      ]
    }
    

    说明

    • registry-mirrors:指定加速器地址数组,可填多个。
    • 保存后,文件需为合法 JSON 格式。

4. 重启 Docker 服务并验证

# 重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker

# 再次检查状态
sudo systemctl status docker
  • 如果显示 Active: active (running),则守护进程连接套接字 /var/run/docker.sock 已恢复。

  • 可执行拉取测试:

    docker pull busybox
    

    若能正常拉取并显示进度,说明配置和服务均正常。

5. 设置 Docker 开机自启

为避免下次重启后再次出现同样问题,建议设置 Docker 服务随系统启动:

sudo systemctl enable docker
  • 执行后,docker.service 在 Loaded: 一行将由 disabled 变为 enabled。

  • 再次重启系统验证:

    sudo reboot
    
    # 重启后无需手动启动
    docker info
    

常见误区与排查建议

  1. 仅配置镜像加速而未启动服务

    • 配置文件无效时,守护进程也可能启动失败。请先确认服务可启动,再添加镜像配置。
  2. daemon.json 格式错误

    • JSON 中不能有多余逗号,严格按照 JSON 语法书写,否则重启时会报解析错误。
    • 可执行 docker info,若配置错误,通常会在日志中看到 Error parsing config file。
  3. SELinux 或权限导致套接字不可访问

    • /var/run/docker.sock 默认归属为 root:docker,需确保当前用户在 docker 组内:

      sudo usermod -aG docker $USER
      
    • 退出并重新登录后生效。


总结与最佳实践

  • 核心问题:未设置 Docker 服务开机自启,导致重启后守护进程未运行,客户端无法连接套接字。

  • 解决方案:

    1. 启动并验证 Docker 服务
    2. 编辑 /etc/docker/daemon.json 添加 registry-mirrors
    3. 重启服务,确认正常
    4. 执行 systemctl enable docker 设置开机自启
  • 建议:

    • 在所有生产或开发节点上统一配置镜像加速和开机自启。
    • 定期检查 Docker 日志和服务状态,避免因版本升级、配置变更导致意外中断。
    • 对于多节点集群,可结合 Ansible、SaltStack 等自动化工具,统一下发上述配置。

参考资料

  1. Docker 官方文档 — Daemon 配置文件
  2. 阿里云加速器使用指南 — Docker 镜像加速
  3. CentOS 7 Systemd 指南 — systemctl 命令详解

后记:确保 Docker 服务的高可用和稳定运行,是云原生平台建设的基础。正确的开机自启配置和镜像源优化,可以大幅减少生产环境中因服务未启动或拉取超时带来的风险。祝你在云原生之路上一路顺畅!

关于:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 关于今天使用Docker时报了以下错误: [centos@localhost ~]$ docker ps Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 分析报错的原因: 报错的翻译:无法连接到 unix:///var/run/docker.sock 上的 Docker 守护程序。 docker 守护进程是否正在运行? 通过翻译完报错,可以看出报错的原因是 阅读详情

相关推荐

记录 | docker ps报错is the docker daemon running

记录 | docker ps报错is the docker daemon running

极智视界 2531

Is the docker daemon running?问题解决方法

在运行 sudo docker ps -a时出现 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 此时已确定Docker本身已经安装正常。 问题原因是因为docker服务没有启动,所以在相应的/var/run/ 路径下找不到docker的进程。 执行...

XYKenny的博客 9万+

OpenSceneGraph编译、安装、开发环境

详细描述WIndows 10下使用Visual Studio 2019编译OpenSceneGraph 3.6.5的操作流程

国产CAx(CAD/CAE/CAM)软件研发 8772

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

docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?. 最近重新安装Docker出现了一个问题,解决方案如下:

宾宾宝宝的博客 5327

【Latex】【附安装文件】Miktex和TexStudio的安装与配置

这代表“构建并运行”,一般来说,我们只需要点这个按钮来运行Latex代码。保存一下代码文件,再运行一次,PDF文件会出现在与代码文件相同的文件夹下。安装完成后,你可能会跳转到一个页面中,你看到这个页面就意味着安装成功了。其实不需要你敲,你只要将下面的代码复制粘贴到你刚刚的文件中即可。成功安装MikTex后,我们需要进行更新,减少后续使用的麻烦。如果懂得将安装路径设置在你想要的盘中,你可以自己设置。双击上文的.exe文件后,你会看到如下画面。如果不懂,为避免不必要的麻烦,请直接点击“

未来就在脚下。 1万+

从零开始:Doherty功率放大器的ADS仿真实践指南

本文详细介绍了Doherty功率放大器在ADS中的仿真设计流程,从基础原理到实际工程应用。通过负载调制技术,Doherty结构显著提高了功率放大器的效率,特别适合处理高峰均比信号。文章包含ADS环境搭建、对称与非对称设计、常见问题调试等实用内容,为射频工程师提供全面的实践指南。

weixin_29313547的博客 690

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

如果文件和标志之间有重复的选项,无论其值如何,docker 守护进程都将无法启动。例如,如果您在配置文件中设置守护进程标签并通过标志设置守护进程标签,守护进程将无法启动。该文件使用与键相同的标志名称,但允许多个条目的标志除外,其中它使用标志名称的复数形式,例如,继续排查问题,网上找到种方法是修改/etc/docker的daemon.json为daemon.conf,尝试了下,果然有用。无法连接到Docker守护进程在unix:///var/run/ Docker.sock。docker守护进程正在运行吗。

qq_41661843的博客 2227

Odoo 集成ReportBro报表设计器支持13,14,15,16,17,18,19

Odoo 集成ReportBro零代码报表设计器,ReportBro设计器 一个用于创建PDF和XLSX报告模板的javascript插件。

zxltwins的博客 3377

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

"Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?"解决办法 输入systemctl start docker 此时再次输入则报错解决

weixin_45912307的博客 298

如何玩转腾讯云轻量级服务器(新手向)

如何玩转腾讯云轻量级服务器(新手向) ​ 相信不少同学都想将自己的服务器部署到云服务器,让别人通过自己的域名就可以访问到自己的项目,而腾讯云轻量级服务器作为一个小型的应用,支持域名解析和可视化运维等。比较适合新手入门 ​ 本文服务器操作系统为Centos7 一. 购买以及基本配置 1.购买方式 ​ 本文主要面向新手,毕竟一般只有新手才会购买轻量级服务器。所以可以选择购买一年的来学习,以后再根据需要换,前提提示(轻量级服务器没有安全组的,开放端口直接开启防火墙里的即可) ​ 购买连接 购买完成后点击控制

qq_46160687的博客 1万+

ANSYS Workbench接触分析实战:从算法选择到收敛难题破解

本文深入解析ANSYS Workbench接触分析的核心技术与实战技巧,涵盖四大接触算法选择、收敛难题破解秘籍及典型场景参数设置。通过实际案例演示如何优化接触刚度、pinball区域和非对称行为等关键参数,帮助工程师有效解决结构非线性问题,提升仿真效率和精度。

weixin_28705087的博客 359

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

docker search 无法使用 异常: [root@tdmarco docker]# docker search mysql Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? [root@tdmarco docker]# docker images Cannot connect to the Docker daemon at unix:///var/run

fanchw的专栏 443

LLaMA Factory多卡微调的实战教程(持续更新)

本文主要介绍了LLaMA Factory多卡微调的实战教程(持续更新),希望对学习大语言模型的同学们有所帮助。 文章目录 1. 前言 2. 配置环境 2.1 安装虚拟环境 2.2 安装依赖库 2.3 模型选型与下载 2.4 配置多卡环境 3. 运行代码 3.1 构建训练数据 3.2 修改配置文件 3.3 微调 3.3.1 zero3微调 3.3.2 启动API 3.3.3 模型测试

herosunly的博客 25万+
上一篇: 【Kubernetes 核心资源详解】Pod、Deployment、Service、Ingress 关系全解析|多容器设计原理|服务暴露与路由机制|新手常见误区与最佳实践指南
下一篇: Docker 私有仓库的搭建、配置与镜像上传教程
AI云原生
博客等级 码龄3年 1万+粉丝 216原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值