我从非 root 用户testuser
(即非 sudo 帐户)按照说明安装了无 root docker这里(Ubuntu 没有软件包)。
docker exec -it my_container bash
当我启动一个容器并通过运行然后检查进入它时,whoami
我得到的是:root
而不是testuser
。此外,名为由 拥有的卷的文件和文件夹testuser
未安装且由 拥有root
。docker 守护程序正在运行,testuser
因为我正在从 运行该守护程序systemctl --user
。
这很令人困惑。
- 为什么docker没有在容器内以root身份运行?
- 为什么已安装的卷突然拥有不同的所有权?
我检查了这个答案这里,但它指出,当守护进程以 root 身份运行时 - 这是正常的,但我的无根设置并非如此。
答案1
这是因为容器在不同的用户命名空间下运行。容器中的 root (0) 可能映射到主机上的用户 ID。