【亲测有效】运行docker ps 出现Got permission denied问题的解决方案

问题描述

今天在运行 docker ps 命令的时候出现如下问题:

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.38/containers/json: dial unix /var/run/docker.sock: connect: permission denied

看提示信息好像是权限不够,我们试试 root 权限:

我们发现用 root 权限就可以使用 docker 相关命令,那我们想在普通用户下使用 docker 相关命令,这该怎么办呢?

我们去 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 权限才能访问。

我们该怎么解决这个问题呢?

解决方案一

使用 sudo 获取管理员权限,运行 docker 命令(当然我不推荐这种方法,因为我没成功过,似乎还是出现了如上问题)

解决方案二

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

我们可以使用如下命令解决问题:

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

然后我们可以完美地解决了这个问题,效果如下:

原文地址:https://www.cnblogs.com/ECJTUACM-873284962/p/9889958.html

时间: 2024-07-29 22:51:38

【亲测有效】运行docker ps 出现Got permission denied问题的解决方案的相关文章

hadoop学习;hdfs操作;运行抛出权限异常: Permission denied;api查看源码方法;源码不停的向里循环;抽象类通过debug查找源码

eclipse快捷键alt+shift+m将选中的代码封装成方法:alt+shift+l将选中的代码添加对应类型放回参数 当调用一个陌生方法时,进入源码不停的向里循环,当找不到return类似方法的时候,可以看到最原始的方法 package com.kane.hdfs; import java.io.InputStream; import java.net.URL; import org.apache.hadoop.fs.FsUrlStreamHandlerFactory; import org

安装完docker后报错Got permission denied while trying to connect to the Docker daemon socket...

报错内容: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.40/containers/json: dial unix /var/run/docker.sock: connect: permission denied 出现问题原因:docker进程使用Un

OK6410按键驱动程序(改)亲测可以运行

#include <linux/kernel.h> #include <linux/module.h> #include <linux/init.h> #include <linux/fs.h> #include <linux/gpio.h> #include <linux/types.h> #include <linux/cdev.h> #include <linux/interrupt.h> #includ

【IOS】mac终端运行.sh文件总是提示permission denied

如果我目录jni有一个list.sh文件 我直接 nxgametekiMacBook-Air:jni luonan$  ./list.sh ../../Classes 提示 permission denied 然后 chmod +x  *.sh 然后执行就OK了 nxgametekiMacBook-Air:jni luonan$ chmod +x *.sh ./list.sh ../../Classes nxgametekiMacBook-Air:jni luonan$  ./list.sh .

GitLab CI with docker and dind &quot;mount: permission denied (are you root?)&quot;

今天配置gitlab-runner时候出现以上错误,在官网中找到答案 https://gitlab.com/gitlab-org/gitlab-runner/issues/1544 原文地址:https://www.cnblogs.com/shuaiandjun/p/9484540.html

大数据开发环境需要的安装包合集,亲测没问题

大数据环境需要的安装包合集,包括: apache-flume-1.7.0-bin.tar.gz apache-hive-1.2.1-bin.tar.gz hadoop-2.7.2.tar.gz hbase-1.3.1-bin.tar.gz jdk-8u144-linux-x64.tar kafka_2.11-0.11.0.2.tgz mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar scala-2.11.8.tgz spark-2.1.1-bin-hadoop2.

Linux下正确修改Docker镜像和容器的默认存储位置,亲测有效

原文:Linux下正确修改Docker镜像和容器的默认存储位置,亲测有效 我们通过 yum 的方式安装完Docker环境后,它默认的存储位置是 /var/lib/docker,默认的 pid 存放位置是 /var/run/docker.pid. 如果仅仅是做测试,我们可能没有必要修改,但是当大量使用docker镜像的时候,我们可能就要默认存储的位置了. 具体操作方法如下: 1.停止docker: service docker stop 2.修改docker服务的service文件: vim /u

Android蓝牙自动配对Demo,亲测好使!!!

蓝牙自动配对,即搜索到其它蓝牙设备之后直接进行配对,不需要弹出配对确认框或者密钥输入框. 转载请注明出处http://blog.csdn.net/qq_25827845/article/details/52400782 经过最近一段时间得研究,针对网上给出的案例.总结了一个亲测好使的Demo. 说明如下: 1.本Demo用来连接蓝牙设备HC-05,如果你要连接其他蓝牙设备,注意修改相关名字以及修改设备初试pin值. 2.将Demo安装在Android手机上,点击按钮,可以实现与目标蓝牙设备的自动

亲测VS2010纯静态编译QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序(图文并茂,非常详细)

下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0-vs2010.exe,这些版本都只是动态编译的,不是我们所需要的.只有用源码包才能做真正的纯静态编译,如果用Qt官网已编译的标准库.exe文件进行编译,有可能出现各种错误,而且编译后的文件巨大,我当时就在这里绕了很大的弯子,请童鞋们注意啦!!可能有些老鸟会笑话,但我本着最严肃的态度告诉菜鸟们,上网查