- 以非根用户(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