Docker RUN层没有安装卷
在我的docker-compose中,我将一个本地文件夹挂载到Docker的文件夹中。 我可以在Dockerfile中看到并使用CMD的装入卷,但不能在RUN中使用。 运行似乎是从文档完全干净的一层。 有没有办法使RUN能够使用docker-compose文件中指定的挂载点?
无论您是使用docker
本身, docker-compose
还是其他工具,都无法在docker build
过程中装入卷。 整个想法是, 构build过程应尽可能与您的环境独立,以使得生成的图像对本地系统没有依赖关系,并且可以更容易地共享。
通常有不同的方法来处理你想要解决的问题,而不需要试图将数据公开到构build过程中。
其实CMD
和RUN
有很大的区别
CMD
用于提供在启动容器时执行的参数或命令RUN
用于提供执行命令以创build新图层。
简而言之:在构build步骤中(执行RUN
时),卷不可用。
Docker容器有两种提供“外部”文件的方法:
- 在构build步骤中,上下文已通过。
- 在运行步骤中,使用容器层+卷。
参见CMD
:
- https://docs.docker.com/engine/reference/builder/#cmd
- https://docs.docker.com/engine/reference/builder/#entrypoint
请参阅RUN
:
关于上下文请看: