>
目錄
- 1、問題背景
- 2、問題原因
- 3、解決方法
- Attention
1、問題背景
初次使用docker時,安裝后通過終端進行docker命令時必須加上root權限,否則將會報錯,如下所示:
問題原因和相應的解決方法在官方網站中有文檔解釋:
https://docs.docker.com/engine/install/linux-postinstall/
2、問題原因
docker提供服務的后臺守護進程是綁定至一個Unix socket上而非TCP端口上,而通常這個Unix socket只能由root用戶使用,普通權限的用戶使用時必須加上 sudo 命令
3、解決方法
知道原因以后,解決方法就顯而易見了:讓當前用戶有使用Unix socket的權限具體做法是創建一個名叫 docker 的Unix用戶組,并且把當前用戶添加進去,當docker守護進程啟動創建Unix socket時就會自動令該組下的所有成員能夠進行訪問
sudo groupadd docker sudo usermod -aG docker $USER #此處的USER是系統變量,直接使用該語句即可 newgrp docker
通過上述方法可能會令當前用戶擁有root權限,所以應當謹慎使用,具體風險如下:
https://docs.docker.com/engine/security/#docker-daemon-attack-surface
大家可以看一看官方文檔,里面也列舉了可能會遇到的其他問題
Attention
雖然這樣做可以在輸入docker命令時不用加sudo,但并非對于所有命令都有效,如:
docker login ... or docker push ...
如果使用上述方法后執行docker命令發現奇怪的報錯,可以先使用sudo再嘗試執行一次
>