請關注本頭條號,每天堅持更新原創乾貨技術文章。
如需學習視頻,請在微信搜索公眾號“智傳網優”直接開始自助視頻學習
1. 前言
如果您在Ubuntu上運行Docker,但被提示Permission Denied(權限拒絕),應該處理?本教程將對此問題提出解決方法。
最近,我在Ubuntu上安裝了Docker,安裝是非常簡單。但當我試圖運行docker命令時,它拋出了這個錯誤:
<code>Got permission deniedwhile
trying toconnect
to the Docker daemonsocket
at unix://
/var/run
/docker.sock: Get http:/
/%2Fvar%2Frun%2Fdocker.sock/v
1.39
/containers/json: dial unix /var/run/docker.sock:connect
: permission denied/<code>
Got permission denied while trying to connect to the Docker daemon socket(在試圖連接到Docker daemon socket時被拒絕)
2. 運行docker權限拒絕的2種解決方法
想知道如何解決這個問題?下面介紹2種解決方法。
2.1 方法1:用sudo運行所有docker命令
如果你當前有sudo訪問權限,你可以用sudo運行每個docker命令,你就不會再看到Got permission denied while trying to connect to the Docker daemon socket(在試圖連接到Docker daemon socket時被拒絕)這個錯誤提示了。
<code>sudo
docker ps -a/<code>
<code>CONTAINER
ID IMAGE COMMAND CREATED STATUS PORTS NAMES 13dc0f4226dc ubuntu"bash"
17
hours ago Exited (0
)16
hours ago container-2
2d9a8c190e6c ubuntu"/bin/bash"
17
hours ago Created container-1
/<code>
但是用sudo運行每個docker命令非常不方便。如果你忘記使用sudo命令,你會得到'權限拒絕'的提示。
2.2 方法2: 在沒有sudo的情況下運行docker命令
要在沒有sudo的情況下運行docker命令,您可以將目標用戶(系統用戶)添加到docker組。
首先,使用groupadd命令創建docker組。目標組可能已經存在,但是運行組創建命令不會有什麼影響。
<code>sudo
groupadd docker/<code>
現在您已經有了docker組,使用usermod命令將您的用戶添加到這個組中。如果想把當前用戶加入這個xesg中,您可以使用$user變量。
<code>sudo
usermod -aG docker$USER
/<code>
通過列出docker組的用戶來驗證您的用戶是否已被添加到docker組。您可能需要註銷並再次登錄。
<code>sudo
groups/<code>
如果你的組和docker組沒有列出,甚至在註銷後也沒有列出的話,你可能需要重新啟動Ubuntu。為了避免這種情況,你可以使用newgrp命令,像下面這樣的命令:
<code>newgrp
docker/<code>
現在,如果您嘗試在不使用sudo的情況下運行docker命令,應該可以正常工作。
3. 可能遇到的其它問題
在某些情況下,您可能需要向某些文件添加額外的權限,特別是在過去使用sudo運行docker命令的情況下。
您可以嘗試更改文件/var/run/docker.sock的所屬組。
<code>sudo chown root:docker /var
/run/docker.sock/<code>
您還可以嘗試更改目錄~/.docker所屬的組
<code>sudochown
"$USER"
:"$USER"
/home/"$USER"
/.docker -R sudochmod
g+rwx"$HOME/.docker"
-R/<code>
然後嘗試運行docker與sudo。現在應該沒問題了。
4. 總結
我希望這個教程能夠幫助您解決"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.39/containers/json: dial unix /var/run/docker.sock: connect: permission denied”這個錯誤提示。如有任何問題歡迎留言。
本文已同步至博客站,尊重原創,轉載時請在正文中附帶以下鏈接:
https://www.linuxrumen.com/rmxx/1665.html
點擊瞭解更多,快速查看更多的技術文章列表。