如何免sudo使用docker命令详解
背景
Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎,源代码托管在 GitHub 上, 基于Go语言开发并遵从Apache 2.0协议开源。Docker提供了一种在安全、可重复的环境中自动部署软件的方式,它的出现拉开了基于云计算平台发布产品方式的变革序幕。
对Linux系统管理员或高级用户而言,sudo是必不可少的最重要的命令之一。而因为使用的是sudo安装docker,所以会导致一个问题。以普通用户登录的状况下,在使用 docker images 时必须添加 sudo ,那么如何让docker免 sudo 依然可用呢?于是开始搜索解决方案。
理清楚问题
当以普通用户身份去使用 docker images 时,出现以下错误:
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
可以看都,最后告知我们时权限的问题。那么在linux文件权限有三个数据左右 drwxrwxrwx ,

其中第一为 d 代表该文件是一个文件夹
前三位、中三位、后三位分别代表这属主权限、属组权限、其他人权限。
如图,其中 第三列、第四列分别代表文件的属主、属组。

上图是报错文件的权限展示,可以看到其属主为 root ,权限为 rw ,可读可写;其属组为 docker ,权限为 rw ,可读可写。如果要当前用户可直接读取该文件,那么我们就为当前用户添加到 docker 属组即可。
如果还没有 docker group 就添加一个:
sudo groupadd docker
将用户加入该 group 内。然后退出并重新登录就生效啦。
sudo gpasswd -a ${USER} docker
重启 docker 服务
sudo service docker restart
切换当前会话到新 group 或者重启 X 会话
newgrp - docker
注意:最后一步是必须的,否则因为 groups 命令获取到的是缓存的组信息,刚添加的组信息未能生效,所以 docker images 执行时同样有错。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
相关文章
Docker 拉取镜像超时(亲测 3 个有效镜像源 + 避坑指南)
Docker 默认镜像源在国外,国内访问经常抽风,常规操作应该是换国内镜像源,本文就来介绍一下三个国内稳定源,具有一定的参考价值,感兴趣的可以了解一下2025-08-08
Dockerfile 中 VOLUME 与 docker -v 的区别说明
这篇文章主要介绍了Dockerfile 中 VOLUME 与 docker -v 的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-03-03
docker实现部署jar包项目教程(包括单个和多个一起部署)
文章介绍了Docker部署Spring Boot项目的方法,涵盖单个jar包的打包、Dockerfile编写及运行,多个jar包通过启动脚本同时部署的技巧,并建议在部署复杂或数量多时使用Docker Compose或K8s统一管理2025-07-07
详解利用Dockerfile构建mysql镜像并实现数据的初始化及权限设置
本篇文章主要介绍了详解利用Dockerfile构建mysql镜像并实现数据的初始化及权限设置 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-06-06


最新评论