Ubuntu Docker 容器中的权限在 Docker 文件中的 USER 语句之后

Privileges in an Ubuntu Docker container after USER statement in Dockerfile

我创建了一个 Dockerfile

FROM       ubuntu:latest

作为父图像。

稍后 Dockerfile 通过

创建一个没有 sudo 权限的新组和用户
RUN groupadd -r myappuser -g 433
RUN useradd -u 431 -r -g myappuser -d /opt/myapp -s /bin/false -c "my app user" myappuser

在执行应用程序之前,我切换到这个新的

USER       myappuser

问题:此设置是否可以在构建映像且容器为 运行(例如 docker exec -it)后再次获得 root 权限?

如果你不想使用 sudo,你可以有一个没有 USER 的 Dockerfile(所以它 运行 以 root 身份执行命令)并且 CMD 指向脚本这会进行用户切换,这样 docker exec 将 运行 作为 root。

其他方法是设置根密码并使用su。 这样做的一个例子是在 tutum images

https://github.com/tutumcloud/tutum-centos/blob/master/set_root_pw.sh