我从 Dockerfile(从 git hub 下载)构建 docker 镜像。在 Dockerfile 中,有这样一行:
RUN useradd -m user
USER user
此后,所有后续过程都在“用户”下进行。然而,当我使用镜像时,我意识到我被困在“用户”中,无法再切换到 root,因为我不知道 root 的密码。Dockerfile 中从未指定过密码。该镜像基于 Centos7
这是怎么发生的?有没有办法获取密码?
我将非常感激任何提示!
太感谢了
答案1
一旦您运行非特权 docker 容器,您就无法从这里切换到 root,除非设置 root 密码。
幸运的是,您不必设置 root 密码(也不应该设置)。相反,您可以使用 -u 选项以 root 身份创建新进程或容器:
docker run -u root imagename
或者
docker exec -u root containername bash
提示:-it
如果您需要与终端上的进程交互,也请添加标志。