如何免sudo使用docker命令詳解
背景
Docker是PaaS供應(yīng)商dotCloud開(kāi)源的一個(gè)基于LXC 的高級(jí)容器引擎,源代碼托管在 GitHub 上, 基于Go語(yǔ)言開(kāi)發(fā)并遵從Apache 2.0協(xié)議開(kāi)源。Docker提供了一種在安全、可重復(fù)的環(huán)境中自動(dòng)部署軟件的方式,它的出現(xiàn)拉開(kāi)了基于云計(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 依然可用呢?于是開(kāi)始搜索解決方案。
理清楚問(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 ,可讀可寫(xiě);其屬組為 docker ,權(quán)限為 rw ,可讀可寫(xiě)。如果要當(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ì)腳本之家的支持。
相關(guān)文章
Docker 拉取鏡像超時(shí)(親測(cè) 3 個(gè)有效鏡像源 + 避坑指南)
Docker 默認(rèn)鏡像源在國(guó)外,國(guó)內(nèi)訪問(wèn)經(jīng)常抽風(fēng),常規(guī)操作應(yīng)該是換國(guó)內(nèi)鏡像源,本文就來(lái)介紹一下三個(gè)國(guó)內(nèi)穩(wěn)定源,具有一定的參考價(jià)值,感興趣的可以了解一下2025-08-08
Docker容器與宿主機(jī)相互訪問(wèn)更方便的方法
Docker是當(dāng)今使用范圍最廣的開(kāi)源容器技術(shù)之一,具有高效易用的優(yōu)點(diǎn),然而如果使用Docker時(shí)采取不當(dāng)安全策略,則可能導(dǎo)致系統(tǒng)面臨安全威脅,這篇文章主要給大家介紹了關(guān)于Docker容器與宿主機(jī)相互訪問(wèn)更方便的方法,需要的朋友可以參考下2023-05-05
Docker 容器日志查看和清理的實(shí)現(xiàn)步驟
在處理Docker容器的過(guò)程中,經(jīng)常需要查看容器的日志輸出來(lái)排查問(wèn)題或者進(jìn)行系統(tǒng)監(jiān)控,本文主要介紹了Docker容器日志查看和清理的實(shí)現(xiàn)步驟,感興趣的可以了解一下2023-11-11
Dockerfile 中 VOLUME 與 docker -v 的區(qū)別說(shuō)明
這篇文章主要介紹了Dockerfile 中 VOLUME 與 docker -v 的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
docker實(shí)現(xiàn)部署jar包項(xiàng)目教程(包括單個(gè)和多個(gè)一起部署)
文章介紹了Docker部署Spring Boot項(xiàng)目的方法,涵蓋單個(gè)jar包的打包、Dockerfile編寫(xiě)及運(yùn)行,多個(gè)jar包通過(guò)啟動(dòng)腳本同時(shí)部署的技巧,并建議在部署復(fù)雜或數(shù)量多時(shí)使用Docker Compose或K8s統(tǒng)一管理2025-07-07
詳解利用Dockerfile構(gòu)建mysql鏡像并實(shí)現(xiàn)數(shù)據(jù)的初始化及權(quán)限設(shè)置
本篇文章主要介紹了詳解利用Dockerfile構(gòu)建mysql鏡像并實(shí)現(xiàn)數(shù)據(jù)的初始化及權(quán)限設(shè)置 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
記一次Docker生產(chǎn)環(huán)境搭建的方法
這篇文章主要介紹了記一次Docker生產(chǎn)環(huán)境搭建的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06

