在 Ubuntu 系統中,如果 Docker 是以 root 用戶安裝的,普通用戶默認無法直接使用 Docker 命令(會報權限錯誤)。要讓普通用戶也能使用 Docker,可以按照以下步驟操作:
方法 1:將用戶加入 docker
用戶組(推薦)
Docker 安裝時會自動創建一個名為 docker
的用戶組,將普通用戶加入該組即可獲得權限。
-
創建
docker
用戶組(如果尚未存在)sudo groupadd docker
-
將當前用戶加入
docker
組sudo usermod -aG docker $USER
$USER
是當前用戶名,也可以替換為目標用戶名(如sudo usermod -aG docker username
)。
-
刷新用戶組權限
- 退出當前終端并重新登錄,或者運行以下命令立即生效:
newgrp docker
- 退出當前終端并重新登錄,或者運行以下命令立即生效:
-
驗證是否生效
docker run hello-world
- 如果成功運行,說明配置正確。
方法 2:直接修改 Docker 的權限(不推薦)
如果不想將用戶加入 docker
組,可以臨時修改 Docker 套接字文件的權限(但存在安全風險):
sudo chmod 666 /var/run/docker.sock
- 注意:這會允許所有用戶訪問 Docker,可能導致提權漏洞,僅建議在測試環境使用。
方法 3:通過 sudo
運行 Docker 命令
如果不想配置用戶組,可以在每條 Docker 命令前加 sudo
:
sudo docker ps
- 也可以通過
visudo
配置免密碼 sudo 權限,但同樣存在安全風險。
補充說明
-
安全提醒:
docker
用戶組實際上擁有與 root 等效的權限(因為 Docker 守護進程以 root 運行)。僅將受信任的用戶加入該組。- 生產環境中建議結合 Docker 的 TLS 認證或細粒度授權插件(如
authz
)進行權限控制。
-
如果
docker
組不存在:- 可能是 Docker 未正確安裝。重新安裝 Docker:
sudo apt update sudo apt install docker.io
- 可能是 Docker 未正確安裝。重新安裝 Docker:
-
持久化配置:
- 上述方法 1 的配置是永久生效的,重啟后無需重復操作。
通過以上步驟,普通用戶即可無需 sudo
直接使用 Docker 命令。推薦使用 方法 1,既方便又相對安全。