登录时拒绝 Docker 权限以及我尝试的所有操作

Cod*_*oss 6 linux ubuntu docker

我是 docker 新手,我尝试或未找到的所有内容都被拒绝。我无法在任何 docker 容器中安装任何东西,而且似乎没有任何效果。我看过其他人,似乎没有人知道为什么每个 docker 容器都不能为我工作。下面是一个例子:

sudo docker run -it ubuntu
[sudo] password for user: 
bash: /root/.bashrc: Permission denied
root@ac9449598270:/# vi test.txt
bash: vi: command not found
root@ac9449598270:/# apt-get install vim
W: Unable to read /etc/apt/apt.conf.d/01-vendor-ubuntu - open (13: Permission denied)
W: Unable to read /etc/apt/apt.conf.d/01autoremove - open (13: Permission denied)
W: Unable to read /etc/apt/apt.conf.d/01autoremove-kernels - open (13: Permission denied)
W: Unable to read /etc/apt/apt.conf.d/70debconf - open (13: Permission denied)
W: Unable to read /etc/apt/apt.conf.d/docker-autoremove-suggests - open (13: Permission denied)
W: Unable to read /etc/apt/apt.conf.d/docker-clean - open (13: Permission denied)
W: Unable to read /etc/apt/apt.conf.d/docker-gzip-indexes - open (13: Permission denied)
W: Unable to read /etc/apt/apt.conf.d/docker-no-languages - open (13: Permission denied)
E: Error reading the CPU table 
Run Code Online (Sandbox Code Playgroud)

编辑:

使用 sudo 运行 docker 会产生以下错误:

docker run -it ubuntu
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.39/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.
Run Code Online (Sandbox Code Playgroud)

编辑 2:我在 PopOS 上。它在系统 76 机器上。我试过以 root 身份运行,但没有帮助。

编辑 3:输入组显示

groups
user adm sudo
Run Code Online (Sandbox Code Playgroud)

因此,根据@alex067 的建议,我使用以下命令添加了 docker 组

sudo groupadd docker
sudo usermod -a -G docker user
Run Code Online (Sandbox Code Playgroud)

运行命令后,我现在有一个 docker 组,并且我已被添加到该组中。错误如下

sudo docker run -it ubuntu
bash: /root/.bashrc: Permission denied
root@a7a80c8426db:/# apt update
W: Unable to read /etc/apt/apt.conf.d/01-vendor-ubuntu - open (13: Permission denied)
W: Unable to read /etc/apt/apt.conf.d/01autoremove - open (13: Permission denied)
W: Unable to read /etc/apt/apt.conf.d/01autoremove-kernels - open (13: Permission denied)
W: Unable to read /etc/apt/apt.conf.d/70debconf - open (13: Permission denied)
W: Unable to read /etc/apt/apt.conf.d/docker-autoremove-suggests - open (13: Permission denied)
W: Unable to read /etc/apt/apt.conf.d/docker-clean - open (13: Permission denied)
W: Unable to read /etc/apt/apt.conf.d/docker-gzip-indexes - open (13: Permission denied)
W: Unable to read /etc/apt/apt.conf.d/docker-no-languages - open (13: Permission denied)
E: Error reading the CPU table
root@a7a80c8426db:/# 
Run Code Online (Sandbox Code Playgroud)

我也尝试重新启动docker并收到以下错误

sudo systemctl restart docker
Failed to restart docker.service: Unit docker.service not found.
Run Code Online (Sandbox Code Playgroud)

ale*_*067 7

看起来您主机上的用户无权使用 docker 引擎(或套接字?不确定区别)。

您可以使用group查看您的用户属于哪些组来验证这一点。您应该将“docker”视为组之一。

如果没有,那是你的问题。

您可以通过执行将您的用户添加到 docker 组(提供使用 docker 引擎的权限)

usermod -a -G docker my_user
Run Code Online (Sandbox Code Playgroud)

这会将 docker 组作为辅助组添加到您的用户。

之后,重新启动 docker 引擎可能是个好主意,使用:

sudo systemctl restart docker
Run Code Online (Sandbox Code Playgroud)