Linux执行Docker命令提示Get Permission Denied的解决方案

 更新时间:2025年06月19日 10:46:08   作者:Nick Peng  
这篇文章主要介绍了Linux执行Docker命令提示Get Permission Denied的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、问题描述

安装完docker后,执行docker相关命令,出现以下报错:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/json: dial unix /var/run/docker.sock: connect: permission denied

二、原因分析

摘自 docker mannual 上的一段话,对此异常的说明如下:

Manage Docker as a non-root user

The docker daemon binds to a Unix socket instead of a TCP port. By default that Unix socket is owned by the user root and other users can only access it using sudo. The docker daemon always runs as the root user.

If you don’t want to use sudo when you use the docker command, create a Unix group called docker and add users to it. When the docker daemon starts, it makes the ownership of the Unix socket read/writable by the docker group.

大概的意思就是:

  • docker 进程使用 Unix Socket 而不是 TCP 端口。
  • 而默认情况下,Unix socket 属于 root 用户,需要 root 权限才能访问。

三、解决方法1

使用 sudo 获取管理员权限,运行 docker 命令时在前面加上 sudo

四、解决方法2

docker 守护进程启动的时候,会默认赋予名字为 docker 的用户组读写 Unix socket 的权限,因此只要创建 docker 用户组,并将当前用户加入到 docker 用户组中,那么当前用户就有权限访问 Unix socket 了,进而也就可以执行 docker 相关命令了。

具体操作命令如下:

sudo groupadd docker     		# 添加docker用户组
sudo gpasswd -a $USER docker    # 将登陆用户加入到docker用户组中
newgrp docker     				# 更新用户组
docker images    				# 测试docker命令在不加sudo时是否可以使用

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • docker实践之docker-compose部署mysql方式

    docker实践之docker-compose部署mysql方式

    这篇文章主要介绍了docker实践之docker-compose部署mysql方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • docker-compose部署coredns如何实现自建DNS服务

    docker-compose部署coredns如何实现自建DNS服务

    本文介绍了如何在内网中使用自建的CoreDNS服务进行域名解析,通过配置Corefile和hosts文件,实现内部域名解析,无需在互联网上注册域名,使用docker-compose运行CoreDNS,并通过修改resolv.conf文件配置DNS服务
    2025-01-01
  • 基于Dockerfile创建zabbix监控体系代码实例

    基于Dockerfile创建zabbix监控体系代码实例

    这篇文章主要介绍了基于Dockerfile创建zabbix监控体系代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Docker安装MySQL8的方法步骤

    Docker安装MySQL8的方法步骤

    本篇文章主要介绍了Docker安装MySQL8的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • IDEA 集成 docker 实现远程部署的详细步骤

    IDEA 集成 docker 实现远程部署的详细步骤

    使用命令 vim /usr/lib/systemd/system/docker.service登录docker所在的远程服务器,本文重点给大家介绍IDEA 集成 docker 实现远程部署的详细步骤,需要的朋友参考下吧
    2021-07-07
  • docker和k8s-coredns内部域名解析方式

    docker和k8s-coredns内部域名解析方式

    这篇文章主要介绍了docker和k8s-coredns内部域名解析方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • Dockerfile中的copy命令使用

    Dockerfile中的copy命令使用

    在使用Dockerfile中的copy命令时,如果使用相对路径并且文件不在当前目录下,会导致构建失败,需要使用绝对路径或者将文件移动到Dockerfile所在的目录下
    2025-02-02
  • Rabbitmq heartbea心跳检测机制原理解析

    Rabbitmq heartbea心跳检测机制原理解析

    这篇文章主要介绍了Rabbitmq heartbea心跳检测机制原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Docke实例之搭建gitlab的方法

    Docke实例之搭建gitlab的方法

    本篇文章主要介绍了Docke实例之搭建gitlab的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • docker运行容器远程挂载卷的方法

    docker运行容器远程挂载卷的方法

    本篇文章主要介绍了docker运行容器远程挂载卷的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09

最新评论