我创建了一个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
问题:此设置是否可以在构建镜像并运行容器后再次获得root特权(例如
docker exec -it
)? 最佳答案
如果您不想使用sudo,则可以有一个没有USER
的Dockerfile(因此它以root身份运行命令),并且CMD
指向执行用户切换的脚本,这样docker exec
将以root身份运行。
另一种方法是设置root密码并使用su
。
一个例子是在肿瘤图像中
https://github.com/tutumcloud/tutum-centos/blob/master/set_root_pw.sh