轉載申明
本文轉自 如何免 sudo 使用 docker
簡介
默認安裝完 docker 後,每次執行 docker 都需要運行 sudo 命令,非常浪費時間影響效率。如果不跟 sudo
,直接執行 docker images
命令會有如下問題:
Get http:///var/run/docker.sock/v1.15/containers/json: dial unix /var/run/docker.sock: permission denied
於是考慮如何免 sudo 使用 docker,經過查找資料,發現只要把用戶加入 docker 用戶組即可,具體用法如下。
免 sudo 使用 docker
如果還沒有 docker group 就添加一個:
sudo groupadd docker
ubuntu下,通過一下命令來看有沒有group
cat /ect/group
將用戶加入該 group 內。然後退出並重新登錄就生效啦。
sudo gpasswd -a ${USER} docker
重啓 docker 服務
sudo service docker restart
group 或者重啓 X 會話
newgrp - docker
或者
pkill X
注意,最後一步是必須的,否則因爲 groups 命令獲取到的是緩存的組信息,剛添加的組信息未能生效,所以 docker images 執行時同樣有錯。
原因分析
因爲 /var/run/docker.sock 所屬 docker 組具有 setuid 權限
$ sudo ls -l /var/run/docker.sock
srw-rw---- 1 root docker 0 May 1 21:35 /var/run/docker.sock