如何将Linux机器文件夹复制到Docker容器?COPY命令报错求助
Docker COPY 报错排查与修复
问题根源
COPY指令的源路径是基于构建上下文(Dockerfile所在目录)的,不是宿主机的全局绝对路径。你写的/home/folder1/*会让Docker在构建上下文目录里查找/home/folder1,而你的folder1实际和Dockerfile在同一层级,所以找不到对应目录,触发no such file or directory错误。
修复步骤
- 修正COPY源路径:因为folder1、folder2和Dockerfile同属一个目录,直接用相对路径即可,不需要绝对路径。
- 简化Dockerfile(可选):COPY指令会自动创建不存在的目标目录,所以提前用
RUN mkdir的步骤可以省略。
修正后的Dockerfile示例:
FROM ubuntu:20.04 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update WORKDIR /home/ # 直接复制,目标目录不存在会自动创建 COPY folder1/* /home/folder1/ COPY folder2/* /home/folder2/
额外注意
构建镜像时,确保指定的上下文是Dockerfile所在目录,比如执行:
docker build -t my-ubuntu-image .
这里的.代表当前目录(即Dockerfile和folder1、folder2所在的目录),是构建上下文的正确路径。
内容的提问来源于stack exchange,提问作者Sushant Singh
相关产品推荐
相关产品推荐

