Docker RUN层没有已安装的卷

时间:2017-09-21 21:39:42

标签: docker docker-compose

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

实际上CMDRUN

之间存在很大差异

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

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

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

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

请参阅CMD

请参阅RUN

有关上下文,请参阅: