我如何复制Docker作为非根?

在构建Docker映像时,我如何COPY一个文件到映像中,以便结果文件由根用户以外的用户拥有?

112175 次浏览

对于v17.09.0-ce及更新版本

ADDCOPY命令中使用可选标志--chown=<user>:<group>

例如

COPY --chown=<user>:<group> <hostPath> <containerPath>

——chown标志的文档现在在主Dockerfile参考页面上存在。

文档版本34263已被合并,并在release v17.09.0-ce


对于v17.09.0-ce之前的版本

除了root用户,Docker不支持COPY。你需要chown / chmod文件 COPY命令。

示例Dockerfile:

from centos:6
RUN groupadd -r myuser && adduser -r -g myuser myuser
USER myuser
#Install code, configure application, etc...
USER root
COPY run-my-app.sh /usr/local/bin/run-my-app.sh
RUN chown myuser:myuser /usr/local/bin/run-my-app.sh && \
chmod 744 /usr/local/bin/run-my-app.sh
USER myuser
ENTRYPOINT ["/usr/local/bin/run-my-app.sh"]

在v17.09.0-ce之前,COPY命令的Dockerfile引用说:

所有新创建的文件和目录的UID和GID都是0。


< >强历史 此功能已通过多个GitHub问题跟踪:61199943136002730328499发行30110.

发行34263是实现可选标志功能的问题,而发行467更新了文档。