免sudo使用docker命令

背景

由于使用的是sudo安装docker,因此会致使一个问题。以普通用户登陆的情况下,在使用docker images时必须添加sudo,那么如何让docker免sudo依然可用呢?因而开始搜索解决方案。linux

理清楚问题

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

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文件权限有三个数据左右drwxrwxrwxjson


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

image.png

上图是报错文件的权限展现,能够看到其属主为root,权限为rw,可读可写;其属组为docker,权限为rw,可读可写。若是要当前用户可直接读取该文件,那么咱们就为当前用户添加到docker属组便可。缓存

  • 若是尚未 docker group 就添加一个:bash

    sudo groupadd docker
  • 将用户加入该 group 内。而后退出并从新登陆就生效啦。socket

    sudo gpasswd -a ${USER} docker
  • 重启 docker 服务spa

    sudo service docker restart
  • 切换当前会话到新 group 或者重启 X 会话unix

    newgrp - docker

    注意:最后一步是必须的,不然由于 groups 命令获取到的是缓存的组信息,刚添加的组信息未能生效,因此 docker images 执行时一样有错。rest

相关文章
相关标签/搜索