当前位置: 首页 > 知识库问答 >
问题:

Dockerfile中用户语句后Ubuntu Docker容器中的权限

岳均
2023-03-14

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

共有1个答案

公冶浩慨
2023-03-14

如果您不想使用sudo,您可以拥有一个没有USER的Dockerfile(因此它以root身份运行命令)和CMD指向执行用户切换的脚本,这样docker exec将以root身份运行。

另一种方法是设置根密码并使用su。tutum图片中有一个这样做的例子

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

 类似资料:
  • Dockerfile最佳实践为用法提供了以下建议: 始终将RUN apt-get update与apt-get install组合在同一个RUN语句中。 我是否也应该对使用相同的规则?例如。DockerFile中的哪一个实践更好:

  • 问题内容: 我正在尝试编写一个docker文件,该文件将运行RUN命令以在package.json文件中搜索单词并对其执行操作: 这是我简单的dockerfile: 如您所见,我只想要一个简单的if语句,但它得到此错误: 我应该如何运行命令?谢谢。 问题答案: 就像在shell上键入内容一样,您需要在前面加上换行符或分号:

  • 1.1. 用户语句(user_says) 1.2. 用户语句(user_says)类型 1.1. 用户语句(user_says) 为意图配置任何可能的用户语句,形成映射关系。例如,我们对意图中定义的JSON进行完善: { "intents": [ { "intent": "bestcoffeebar", "slots": [ { "name": "

  • 我试图构建一个简单的docker文件,它本身将启动一个组合舰队。可能会破坏容器的用途;但我发现这是我认为最适合我的情况。

  • 在这个问题上我会得到任何帮助的。我已经花了好几个小时没有任何真正的解决办法。我有一个SQL 在表g1中,我对我的数据进行分组,以找到to_place最常见的情况,然后我想按升序排列这些情况(这样我以后就可以在每个to_place类别中选择最常见的前3个)。 问题是用户定义的变量是不可预测的(@rank有时总是1),这可能与这样一个事实有关,即在一个语句中,我不应该引用同一个变量(current_t

  • 问题内容: 我编写了一个Dockerfile和docker-compose.yml来构建一个自定义映像,该映像结合了beakerx和cling,内容如下。 和 的一些日志是 但是当我跑步时,我得到了错误。因此,我进入了docker镜像。 为什么一见钟情,为什么会有很多问号?当我以root身份运行或返回原始用户时,它是正确的。 我尝试手动运行start-notebook.sh,第一次失败,然后第二次