能否以普通用户身份或者不使用 sudo 运行Docker ?

  1. 以非根用户(non-root)管理 Docker

Docker 守护进程(daemon)绑定到 Unix 套接字(Unix socket)而不是 TCP 端口。 默认情况下,Unix 套接字(Unix socket)由用户 root 拥有,其他用户只能使用 sudo 访问它。 Docker 守护进程始终以 root 用户身份运行。

如果您不想在 docker 命令前使用 sudo,请创建一个名为 docker 的 Unix 组并向其中添加用户。 当 Docker 守护进程(docker daemon)启动时,它会创建一个可由 docker 组成员访问的 Unix 套接字(Unix socket)。

Warning : docker组拥有和根用户(root user)同等权限。

注意 : 以 non-root user (Rootless mode) 运行 Docker daemon , 可使当前用户不具根用户权限

  1. 以non-root user (Rootless mode ) 运行 Docker daemon

Rootless 模式允许以非 root 用户身份运行 Docker 守护进程(daemon)和容器(container),以缓解守护进程和容器运行时中的潜在漏洞。 Rootless模式即使在安装 Docker 守护进程(docker daemon)的过程中也不需要 root 权限,只要满足先决条件即可。

工作原理:
Rootless 模式在用户命名空间(user namespace)内执行 Docker 守护进程(docker daemon)和容器(containers)。 这与 userns-remap 模式非常相似,除了在 userns-remap 模式下,守护进程(daemon)本身以 root 权限运行,而在Rootless 模式下,守护进程(daemon)和容器(containers)都在没有 root 权限的情况下运行。
Rootless 模式不使用具有 SETUID 位或文件功能的二进制文件,除了 newuidmapnewgidmap,它们是允许在用户命名空间中使用多个 UID/GID 所必需的。

reference :

[1] Post-installation steps for Linux.Manage Docker as a non-root user.site

[2] Run the Docker daemon as a non-root user (Rootless mode).site

上一篇:Linux CentOS8 目录结构与功能


下一篇:Linux CentOS 8 查看系统进程信息