默认安装完 docker 后,每次执行 docker 都须要运行 sudo 命令,很是浪费时间影响效率。若是不跟 sudo,直接执行 docker images
命令会有以下问题:php
FATA[0000] Get http:///var/run/docker.sock/v1.18/images/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?sql
因而考虑如何免 sudo 使用 docker,通过查找资料,发现只要把用户加入 docker 用户组便可,具体用法以下。docker
若是尚未 docker group 就添加一个:json
sudo groupadd docker
将用户加入该 group 内。而后退出并从新登陆就生效啦。缓存
sudo gpasswd -a ${USER} docker
重启 docker 服务ui
sudo service docker restart
切换当前会话到新 group 或者重启 X 会话spa
newgrp - docker
OR
pkill X
注意,最后一步是必须的,不然由于 groups
命令获取到的是缓存的组信息,刚添加的组信息未能生效,因此 docker images
执行时一样有错。unix
由于 /var/run/docker.sock
所属 docker 组具备 setuid 权限rest
$ sudo ls -l /var/run/docker.sock
srw-rw---- 1 root docker 0 May 1 21:35 /var/run/docker.sock