如何解决Ubuntu系统中Docker无sudo执行时Permission denied问题?
解决Ubuntu下Docker无需sudo执行的权限问题
这个问题太常见了,我刚接触Docker的时候也踩过这个坑!本质原因是Docker的守护进程默认只允许root用户或者属于docker用户组的用户访问它的Unix socket,普通用户不在这个组里的话,自然就会触发权限拒绝的错误。话不多说,直接上解决步骤:
第一步:确认并创建docker用户组(如果不存在)
多数情况下,Docker安装时会自动创建docker组,但保险起见还是先执行命令确认:sudo groupadd docker如果终端提示
groupadd: group 'docker' already exists,说明组已经存在,直接跳过这一步就行。第二步:将当前用户加入docker组
用$USER变量可以自动获取当前登录的用户名,执行这条命令把用户追加到docker组(-aG参数是追加模式,不会影响用户原本的其他组权限):sudo usermod -aG docker $USER第三步:刷新用户组权限
这一步是关键!刚修改完组配置,当前终端会话不会立刻生效,有两种方式解决:- 快速生效:执行这条命令让当前会话加载新的组权限
newgrp docker - 彻底生效:直接注销当前用户再重新登录,所有新打开的终端都会自动继承
docker组的权限
- 快速生效:执行这条命令让当前会话加载新的组权限
第四步:验证配置是否成功
不用加sudo,执行一条简单的Docker命令测试:docker run hello-world如果能正常拉取
hello-world镜像并输出欢迎信息,说明权限配置成功了,以后再用Docker命令就不用每次都敲sudo啦!
小提示
如果执行newgrp docker后,下次打开新终端还是需要重新执行的话,建议直接注销再登录一次,这样配置会永久生效。
内容的提问来源于stack exchange,提问作者Carlos Andres
相关产品推荐
相关产品推荐

