为什么无根 docker 仍然以 root 身份在容器内运行?

为什么无根 docker 仍然以 root 身份在容器内运行?

我从非 root 用户testuser(即非 sudo 帐户)按照说明安装了无 root docker这里(Ubuntu 没有软件包)。

docker exec -it my_container bash当我启动一个容器并通过运行然后检查进入它时,whoami我得到的是:root而不是testuser。此外,名为由 拥有的卷的文件和文件夹testuser未安装且由 拥有root。docker 守护程序正在运行,testuser因为我正在从 运行该守护程序systemctl --user

这很令人困惑。

  1. 为什么docker没有在容器内以root身份运行?
  2. 为什么已安装的卷突然拥有不同的所有权?

我检查了这个答案这里,但它指出,当守护进程以 root 身份运行时 - 这是正常的,但我的无根设置并非如此。

答案1

这是因为容器在不同的用户命名空间下运行。容器中的 root (0) 可能映射到主机上的用户 ID。

https://docs.docker.com/engine/security/userns-remap/

相关内容