网站首页 > 技术文章 正文
请关注本头条号,每天坚持更新原创干货技术文章。
如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习
1. 前言
如果您在Ubuntu上运行Docker,但被提示Permission Denied(权限拒绝),应该处理?本教程将对此问题提出解决方法。
最近,我在Ubuntu上安装了Docker,安装是非常简单。但当我试图运行docker命令时,它抛出了这个错误:
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
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时被拒绝)这个错误提示了。
sudo docker ps -a
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
但是用sudo运行每个docker命令非常不方便。如果你忘记使用sudo命令,你会得到'权限拒绝'的提示。
2.2 方法2: 在没有sudo的情况下运行docker命令
要在没有sudo的情况下运行docker命令,您可以将目标用户(系统用户)添加到docker组。
首先,使用groupadd命令创建docker组。目标组可能已经存在,但是运行组创建命令不会有什么影响。
sudo groupadd docker
现在您已经有了docker组,使用usermod命令将您的用户添加到这个组中。如果想把当前用户加入这个xesg中,您可以使用$user变量。
sudo usermod -aG docker $USER
通过列出docker组的用户来验证您的用户是否已被添加到docker组。您可能需要注销并再次登录。
sudo groups
如果你的组和docker组没有列出,甚至在注销后也没有列出的话,你可能需要重新启动Ubuntu。为了避免这种情况,你可以使用newgrp命令,像下面这样的命令:
newgrp docker
现在,如果您尝试在不使用sudo的情况下运行docker命令,应该可以正常工作。
3. 可能遇到的其它问题
在某些情况下,您可能需要向某些文件添加额外的权限,特别是在过去使用sudo运行docker命令的情况下。
您可以尝试更改文件/var/run/docker.sock的所属组。
sudo chown root:docker /var/run/docker.sock
您还可以尝试更改目录~/.docker所属的组
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
然后尝试运行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
点击了解更多,快速查看更多的技术文章列表。
- 上一篇: 史上超全!Docker命令全集,值得收藏
- 下一篇: Docker 学习小总结(docker基础教程)
猜你喜欢
- 2024-09-12 64.手把手使用Docker
- 2024-09-12 kubernetes基础知识之docker容器和镜像
- 2024-09-12 docker 安装MongoDB(docker 安装mongodb4.4.4)
- 2024-09-12 Docker入门与实践:容器操作方法详细介绍
- 2024-09-12 Docker实战四之Docker 容器使用(docker 容器运行命令)
- 2024-09-12 【docker】:全面认识Docker和基本指令
- 2024-09-12 Docker 学习小总结(docker基础教程)
- 2024-09-12 史上超全!Docker命令全集,值得收藏
- 2024-09-12 容器化学习-docker2生成镜像(docker手动生成镜像)
- 2024-09-12 Docker容器最常用命令(docker容器操作命令)
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)