Docker构建时Bind挂载未生效问题求助
Docker Build挂载失效问题解决及target参数说明
挂载失效的原因及解决方法
你的问题出在**RUN --mount=bind的挂载仅对当前RUN指令生效**,每个RUN指令都是独立的构建步骤,执行完当前RUN后挂载会被移除,所以第二个RUN里看不到/testdir的内容。
解决方法很简单,把两个RUN合并成一个:
FROM debian:11 RUN --mount=type=bind,source=./testdir,target=/testdir \ ls /testdir
另外要确保testdir目录在你执行docker build .的当前目录下(也就是build上下文范围内),否则Docker找不到要挂载的源路径。
target参数的作用
target=/testdir指定的是容器内的挂载目标路径,作用是把你指定的source路径(build上下文里的./testdir)绑定到容器内的/testdir位置,和docker run -v 主机路径:容器路径里的容器路径作用完全一致。
内容的提问来源于stack exchange,提问作者Sanchke Dellowar
相关产品推荐
相关产品推荐

