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
我创建了一个 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