小知识:如何免sudo使用docker命令详解

背景

docker是paas供应商dotcloud开源的一个基于lxc 的高级容器引擎,源代码托管在 github 上, 基于go语言开发并遵从apache 2.0协议开源。docker提供了一种在安全、可重复的环境中自动部署软件的方式,它的出现拉开了基于云计算平台发布产品方式的变革序幕。

对linux系统管理员或高级用户而言,sudo是必不可少的最重要的命令之一。而因为使用的是sudo安装docker,所以会导致一个问题。以普通用户登录的状况下,在使用 docker images 时必须添加 sudo ,那么如何让docker免 sudo 依然可用呢?于是开始搜索解决方案。

理清楚问题

当以普通用户身份去使用 docker images 时,出现以下错误:

?
1
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 ,

%小知识:如何免sudo使用docker命令详解-猿站网-插图

其中第一为 d 代表该文件是一个文件夹

前三位、中三位、后三位分别代表这属主权限、属组权限、其他人权限。

如图,其中 第三列、第四列分别代表文件的属主、属组。

%小知识:如何免sudo使用docker命令详解-1猿站网-插图

上图是报错文件的权限展示,可以看到其属主为 root ,权限为 rw ,可读可写;其属组为 docker ,权限为 rw ,可读可写。如果要当前用户可直接读取该文件,那么我们就为当前用户添加到 docker 属组即可。

如果还没有 docker group 就添加一个:

?
1
sudo groupadd docker

将用户加入该 group 内。然后退出并重新登录就生效啦。

?
1
sudo gpasswd -a ${user} docker

重启 docker 服务

?
1
sudo service docker restart

切换当前会话到新 group 或者重启 x 会话

?
1
newgrp – docker

注意:最后一步是必须的,否则因为 groups 命令获取到的是缓存的组信息,刚添加的组信息未能生效,所以 docker images 执行时同样有错。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。

原文链接:http://www.tinylab.org/use-docker-without-sudo/

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Docker 1分钟搭建DNS服务器的方法

2023-4-12 14:27:46

建站知识

小知识:解决VMware仅主机模式虚拟机无法ping通物理机问题

2023-4-12 14:42:33

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索