Linux執(zhí)行Docker命令提示Get Permission Denied的解決方案
一、問題描述
安裝完docker后,執(zhí)行docker相關(guān)命令,出現(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 進(jìn)程使用 Unix Socket 而不是 TCP 端口。
- 而默認(rèn)情況下,Unix socket 屬于 root 用戶,需要 root 權(quán)限才能訪問。
三、解決方法1
使用 sudo 獲取管理員權(quán)限,運(yùn)行 docker 命令時在前面加上 sudo
四、解決方法2
docker 守護(hù)進(jìn)程啟動的時候,會默認(rèn)賦予名字為 docker 的用戶組讀寫 Unix socket 的權(quán)限,因此只要創(chuàng)建 docker 用戶組,并將當(dāng)前用戶加入到 docker 用戶組中,那么當(dāng)前用戶就有權(quán)限訪問 Unix socket 了,進(jìn)而也就可以執(zhí)行 docker 相關(guān)命令了。
具體操作命令如下:
sudo groupadd docker # 添加docker用戶組 sudo gpasswd -a $USER docker # 將登陸用戶加入到docker用戶組中 newgrp docker # 更新用戶組 docker images # 測試docker命令在不加sudo時是否可以使用
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker實(shí)踐之docker-compose部署mysql方式
這篇文章主要介紹了docker實(shí)踐之docker-compose部署mysql方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
docker-compose部署coredns如何實(shí)現(xiàn)自建DNS服務(wù)
本文介紹了如何在內(nèi)網(wǎng)中使用自建的CoreDNS服務(wù)進(jìn)行域名解析,通過配置Corefile和hosts文件,實(shí)現(xiàn)內(nèi)部域名解析,無需在互聯(lián)網(wǎng)上注冊域名,使用docker-compose運(yùn)行CoreDNS,并通過修改resolv.conf文件配置DNS服務(wù)2025-01-01
基于Dockerfile創(chuàng)建zabbix監(jiān)控體系代碼實(shí)例
這篇文章主要介紹了基于Dockerfile創(chuàng)建zabbix監(jiān)控體系代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05
IDEA 集成 docker 實(shí)現(xiàn)遠(yuǎn)程部署的詳細(xì)步驟
使用命令 vim /usr/lib/systemd/system/docker.service登錄docker所在的遠(yuǎn)程服務(wù)器,本文重點(diǎn)給大家介紹IDEA 集成 docker 實(shí)現(xiàn)遠(yuǎn)程部署的詳細(xì)步驟,需要的朋友參考下吧2021-07-07
docker和k8s-coredns內(nèi)部域名解析方式
這篇文章主要介紹了docker和k8s-coredns內(nèi)部域名解析方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-05-05
Rabbitmq heartbea心跳檢測機(jī)制原理解析
這篇文章主要介紹了Rabbitmq heartbea心跳檢測機(jī)制原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11

