【问题标题】:docker image overwrite the user in base imagedocker image 覆盖基础镜像中的用户
【发布时间】:2020-04-01 19:20:54
【问题描述】:

我有一个子图像(图像 X),它源自父图像(比如图像 Y,FROM Y:最新), 在父图像 Y 中,我有如下命令,

USER myuser

CMD ["myscript.sh"]

这里我希望脚本由用户'myuser'执行

在子图像 X 中,我将用户更改为,

USER myNewUser

当我从这个图像 X 构建一个容器时,我可以看到“myscript”是由“myNewUser”运行的,而不是由“myuser”运行的

任何想法如何使用该图像中的用户定义在父图像中运行脚本,请帮助!!!

【问题讨论】:

    标签: docker jboss dockerfile wildfly microservices


    【解决方案1】:

    当我从这个图像 X 构建一个容器时,我可以看到 'myscript' 由 'myNewUser' 运行,而不是由 'myuser' 运行

    根据您的此声明,您的图像基于X,并且您已经为用户提供了图像X

    USER myNewUser
    

    因此,如果您从X 创建图像,您将始终使用myNewUser

    如果您想要图像 Y 的用户,只需在根图像为 Y 的情况下更改任何 Dockerfile 中的用户即可添加

    USER myuser
    

    简而言之,您将使用的任何用户都将在您的容器启动时使用该用户。

    【讨论】:

    • 如果我想用“myuser”启动一些进程(通过运行在父映像 Y 中定义的一些脚本)和用用户“myNewUser”启动一些其他进程(通过运行在父映像 X 中定义的一些脚本)
    猜你喜欢
    • 2020-10-17
    • 1970-01-01
    • 2018-11-26
    • 2020-02-26
    • 2022-01-22
    • 2020-01-20
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多