- 以非根用户(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 , 可使当前用户不具根用户权限
- 以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 位或文件功能的二进制文件,除了 newuidmap 和 newgidmap,它们是允许在用户命名空间中使用多个 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