免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

相關文章
相關標籤/搜索