Linux執(zhí)行Docker命令提示Get Permission Denied的解決方案
一、問題描述
安裝完docker后,執(zhí)行docker相關命令,出現(xiàn)以下報錯:
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
二、原因分析
摘自 docker mannual 上的一段話,對此異常的說明如下:
Manage Docker as a non-root user
The docker daemon binds to a Unix socket instead of a TCP port. By default that Unix socket is owned by the user root and other users can only access it using sudo. The docker daemon always runs as the root user.
If you don’t want to use sudo when you use the docker command, create a Unix group called docker and add users to it. When the docker daemon starts, it makes the ownership of the Unix socket read/writable by the docker group.
大概的意思就是:
- docker 進程使用 Unix Socket 而不是 TCP 端口。
- 而默認情況下,Unix socket 屬于 root 用戶,需要 root 權限才能訪問。
三、解決方法1
使用 sudo 獲取管理員權限,運行 docker 命令時在前面加上 sudo
四、解決方法2
docker 守護進程啟動的時候,會默認賦予名字為 docker 的用戶組讀寫 Unix socket 的權限,因此只要創(chuàng)建 docker 用戶組,并將當前用戶加入到 docker 用戶組中,那么當前用戶就有權限訪問 Unix socket 了,進而也就可以執(zhí)行 docker 相關命令了。
具體操作命令如下:
sudo groupadd docker # 添加docker用戶組 sudo gpasswd -a $USER docker # 將登陸用戶加入到docker用戶組中 newgrp docker # 更新用戶組 docker images # 測試docker命令在不加sudo時是否可以使用
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Docker Compose一鍵ELK部署的方法實現(xiàn)
這篇文章主要介紹了Docker Compose一鍵ELK部署的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01
docker images,info,-d等命令報錯的解決方法
最近剛接觸Docker,所以在學習的過程中出現(xiàn)了好多的問題,百度上不好找,谷歌的話,樓主不會翻墻。后來通過各方求助和細心研究解決了一些遇到的問題,現(xiàn)在將遇到的問題和解決方法分享給大家,有需要的朋友們可以參考借鑒。2016-11-11
window-docker的容器使用宿主機音頻設備的過程詳解
這篇文章主要介紹了window-docker的容器使用宿主機音頻設備的相關知識,本文給大家介紹的非常詳細,感興趣的朋友一起看看吧2025-05-05
Docker容器處于Removal in process無法刪除問題及解決
這篇文章主要介紹了Docker容器處于Removal in process無法刪除問題及解決方案,具有很好的參考價值,希望對大家有所幫助。2023-07-07
如何給一個正在運行的Docker容器動態(tài)添加Volume
這篇文章主要介紹了如何給一個正在運行的Docker容器動態(tài)添加Volume,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03

