您的位置:首页 > 运维架构 > Docker

免sudo使用docker命令

2017-04-05 21:16 399 查看


背景

因为使用的是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




image.png

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



image.png

上图是报错文件的权限展示,可以看到其属主为
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 执行时同样有错。

本文借鉴于:http://www.tinylab.org/use-docker-without-sudo/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: