为了让当前用户在不使用 sudo 的情况下操作 Docker,你需要将用户加入 Docker 用户组。以下是具体步骤:

  1. 检查是否已经存在 docker

执行以下命令,检查系统中是否有一个名为 docker 的组:

1
grep docker /etc/group

如果存在,输出类似以下内容:

1
docker:x:999:

如果没有存在,可以使用以下命令创建 Docker 组:

1
sudo groupadd docker
  1. 将当前用户添加到 docker

运行以下命令将当前用户加入 Docker 组(假设当前用户名为 $USER):

1
sudo usermod -aG docker $USER
  1. 应用组更改

为了使组的更改生效,你需要重新登录或者启动一个新的会话。例如:

1
newgrp docker

或者完全注销并重新登录。

  1. 验证是否生效

重新登录后,检查是否可以在不使用 sudo 的情况下操作 Docker。运行以下命令:

1
docker run hello-world

如果显示正常运行的输出,表示设置成功。

  1. 确保 Docker 服务正常运行

确保 Docker 服务正在运行。你可以使用以下命令检查 Docker 服务的状态:

1
sudo systemctl status docker

如果未运行,可以启动:

1
2
sudo systemctl start docker
sudo systemctl enable docker

通过以上步骤,当前用户即可在不使用 sudo 的情况下操作 Docker。如果仍然遇到权限问题,可以检查以下几点:

  • 确保 docker 组的 GIDDocker Daemon 的 GID 是一致的。
  • 确保 Docker 套接字文件(默认路径 /var/run/docker.sock)的权限允许 docker 组访问。

验证:

1
ls -l /var/run/docker.sock

输出应类似以下内容:

1
srw-rw---- 1 root docker 0 Nov 26 10:00 /var/run/docker.sock

docker 组成员需要拥有读写权限。如果有问题,可以用以下命令修改:

1
2
sudo chown root:docker /var/run/docker.sock
sudo chmod 660 /var/run/docker.sock