背景
Docker是PaaS供應(yīng)商dotCloud開源的一個(gè)基于LXC 的高級(jí)容器引擎,源代碼托管在 GitHub 上, 基于Go語(yǔ)言開發(fā)并遵從Apache 2.0協(xié)議開源。Docker提供了一種在安全、可重復(fù)的環(huán)境中自動(dòng)部署軟件的方式,它的出現(xiàn)拉開了基于云計(jì)算平臺(tái)發(fā)布產(chǎn)品方式的變革序幕。
對(duì)Linux系統(tǒng)管理員或高級(jí)用戶而言,sudo是必不可少的最重要的命令之一。而因?yàn)槭褂玫氖莝udo安裝docker,所以會(huì)導(dǎo)致一個(gè)問(wèn)題。以普通用戶登錄的狀況下,在使用 docker images 時(shí)必須添加 sudo ,那么如何讓docker免 sudo 依然可用呢?于是開始搜索解決方案。
理清楚問(wèn)題
當(dāng)以普通用戶身份去使用 docker images 時(shí),出現(xiàn)以下錯(cuò)誤:
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
可以看都,最后告知我們時(shí)權(quán)限的問(wèn)題。那么在linux文件權(quán)限有三個(gè)數(shù)據(jù)左右 drwxrwxrwx ,

其中第一為 d 代表該文件是一個(gè)文件夾
前三位、中三位、后三位分別代表這屬主權(quán)限、屬組權(quán)限、其他人權(quán)限。
如圖,其中 第三列、第四列分別代表文件的屬主、屬組。

上圖是報(bào)錯(cuò)文件的權(quán)限展示,可以看到其屬主為 root ,權(quán)限為 rw ,可讀可寫;其屬組為 docker ,權(quán)限為 rw ,可讀可寫。如果要當(dāng)前用戶可直接讀取該文件,那么我們就為當(dāng)前用戶添加到 docker 屬組即可。
如果還沒(méi)有 docker group 就添加一個(gè):
sudo groupadd docker
將用戶加入該 group 內(nèi)。然后退出并重新登錄就生效啦。
sudo gpasswd -a ${USER} docker重啟 docker 服務(wù)
sudo service docker restart
切換當(dāng)前會(huì)話到新 group 或者重啟 X 會(huì)話
newgrp - docker
注意:最后一步是必須的,否則因?yàn)?groups 命令獲取到的是緩存的組信息,剛添加的組信息未能生效,所以 docker images 執(zhí)行時(shí)同樣有錯(cuò)。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)VEVB武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答
圖片精選