Ubuntu运行docker 权限问题Got permission denied

本文介绍了当遇到Docker连接权限被拒绝错误时的原因及解决方法。通常这种问题源于Docker服务使用Unix socket而非TCP端口,并且默认仅允许root用户访问。文章提供了两种解决方案:一是以root权限运行Docker命令;二是将普通用户添加到docker用户组中。

参考博客
报错

docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.

原因
docker进程使用的是Unix socket而不是tcp端口,而默认情况下Unix socket需要root用户权限使用。
解决办法
所以解决办法有两种,第一种使用root权限运行docker命令,第二种把用户加入到docker用户组

sudo groupadd docker     #添加docker用户组
sudo gpasswd -a $USER docker     #将登陆用户加入到docker用户组中
newgrp docker     #更新用户组
docker ps    #测试docker命令是否可以使用sudo正常使用

在这里插入图片描述

### 解决 Ubuntu 18.04 系统中遇到的 'permission denied' 问题Ubuntu 18.04 系统中,`permission denied` 错误可能由多种原因引起,包括文件权限不足、SSH 配置错误、Docker 权限问题等。以下是针对不同场景的具体解决方案。 #### 文件权限不足 如果尝试访问或修改某个文件时出现 `permission denied` 错误,通常是因为当前用户对该文件没有足够的权限。可以通过以下命令检查和修改文件权限: ```bash ls -l /path/to/file # 检查文件权限 sudo chmod 644 /path/to/file # 修改文件权限为读写 sudo chown $USER:$USER /path/to/file # 修改文件所有者为当前用户 ``` 确保文件权限设置正确以避免访问限制[^2]。 #### SSH 登录问题 当通过 SSH 连接到 Ubuntu 服务器时,如果遇到 `Permission denied, please try again` 错误,可能是由于密码错误或 SSH 配置不当导致。以下是一些常见解决方法: 1. **激活 root 账号并允许 root 登录**: 如果需要使用 root 账号进行 SCP 文件传输,可以激活 root 账号并修改 SSH 配置文件以允许 root 登录。 ```bash sudo passwd root # 设置 root 密码 sudo nano /etc/ssh/sshd_config # 编辑 SSH 配置文件 ``` 在配置文件中,将以下行的注释取消并设置为 `yes`: ```plaintext PermitRootLogin yes PasswordAuthentication yes ``` 保存后重启 SSH 服务: ```bash sudo service ssh restart ``` 2. **解决公钥认证问题**: 如果使用公钥认证登录时出现 `Permission denied (publickey)` 错误,可能是由于 SSH 版本不兼容或密钥格式问题。可以通过生成新的密钥对来解决: ```bash ssh-keygen -t ed25519 -C "your_email@example.com" # 生成新的 ed25519 密钥 ssh-copy-id user@remote_host # 将公钥复制到远程主机 ``` 确保远程主机支持所使用的密钥算法,并检查 `/etc/ssh/sshd_config` 文件中的 `PubkeyAuthentication` 设置是否为 `yes`[^3]。 #### Docker 权限问题运行 Docker 命令时,如果遇到 `Got permission denied while trying to connect to the Docker daemon socket` 错误,通常是因为当前用户未加入 `docker` 组。可以通过以下步骤解决: ```bash sudo groupadd docker # 创建 docker 组(如果尚未存在) sudo usermod -aG docker $USER # 将当前用户添加到 docker 组 newgrp docker # 刷新组权限 ``` 完成后重新启动 Docker 服务: ```bash sudo systemctl restart docker ``` #### Android Studio 模拟器权限问题 在使用 Android Studio 的模拟器时,如果出现 `/dev/kvm device: permission denied` 错误,可能是因为当前用户没有访问 KVM 设备的权限。可以通过以下命令解决: ```bash sudo adduser $USER kvm # 将当前用户添加到 kvm 组 sudo chown root:kvm /dev/kvm # 确保 /dev/kvm 归属正确 sudo chmod 660 /dev/kvm # 设置正确的权限 ``` 此外,还可以尝试修复 `libstdc++` 库链接问题: ```bash cd /path/to/androidSDK/emulator/lib64/libstdc++ mv libstdc++.so.6 libstdc++.so.6.bak ln -s /usr/lib64/libstdc++.so.6 libstdc++.so.6 ``` ### 总结 通过上述方法,可以根据具体场景解决 Ubuntu 18.04 系统中常见的 `permission denied` 问题。确保正确配置文件权限、SSH 设置、Docker 用户组以及 Android Studio 的 KVM 权限[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值