【问题标题】:Docker RUN layer has no mounted volumesDocker RUN 层没有挂载的卷
【发布时间】:2017-09-22 08:01:05
【问题描述】:

在我的 docker-compose 中,我将一个本地文件夹安装到 Docker 的文件夹中。我可以在 Dockerfile 中使用 CMD 查看和使用已安装的卷,但不能使用 RUN。 RUN 似乎是文档中完全干净的层。有没有办法让 RUN 能够使用 docker-compose 文件中指定的挂载点?

【问题讨论】:

    标签: docker docker-compose


    【解决方案1】:

    无论您使用docker 本身、docker-compose 还是其他工具,您都无法在docker build 过程中挂载卷。整个想法是 build 过程应该尽可能独立于您的环境,以便生成的图像不依赖于您的本地系统并且可以更轻松地共享。

    通常有替代方法可以解决您尝试解决的任何问题,而无需尝试将数据公开到您的构建过程中。

    【讨论】:

      【解决方案2】:

      其实CMDRUN有很大区别

      CMD 用于提供启动容器时执行的参数或命令 RUN 用于提供创建新层的命令。

      简而言之:在构建步骤期间(执行RUN 时)卷不可用。

      Docker 容器有两种方式提供“外部”文件:

      • 在构建步骤中,传递上下文。
      • 在运行步骤中,使用容器层 + 卷。

      查看CMD

      查看RUN:

      上下文见:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-26
        • 2020-06-05
        • 2020-01-20
        • 2016-02-29
        • 2019-07-29
        相关资源
        最近更新 更多