You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何正确使用docker cp?主机向容器复制文件失败求助

问题分析与解决

首先,咱们先揪出你操作里的核心问题:

1. 相对路径 vs 绝对路径搞混了!

你进入容器后执行的ls my_folder,是在当前工作目录(容器里的~,一般是/root或者容器用户的home目录)下查看名为my_folder的文件夹;但你用docker cp时写的/my_folder,是指容器根目录下的文件夹——这俩根本不是同一个地方!Docker自然会提示找不到这个目录。

2. 没提前确认目标路径的绝对位置

在执行docker cp前,你没明确容器里my_folder的真实绝对路径,仅凭相对路径的判断就用了根目录下的绝对路径,导致命令指向了不存在的目录。


解决步骤

第一步:确认容器里my_folder的绝对路径

先进入容器,用以下命令搞清楚它的真实位置:

docker exec -it my_container bash
# 先看当前工作目录是什么
pwd
# 查看my_folder的绝对路径
realpath my_folder

比如如果pwd输出是/root,那my_folder的绝对路径就是/root/my_folder

第二步:用正确路径执行docker cp

根据刚才得到的绝对路径,修改你的复制命令:

# 假设绝对路径是/root/my_folder
docker cp ex.txt my_container:/root/my_folder/

或者,如果你想直接用容器的默认工作目录作为基准,也可以省略路径前的/

docker cp ex.txt my_container:my_folder/

额外情况:如果确实要放到根目录下的/my_folder

如果你的目标是把文件放到容器根目录下的my_folder,那你得先在容器里创建这个目录:

docker exec -it my_container mkdir -p /my_folder

之后再执行docker cp ex.txt my_container:/my_folder/就没问题了。


内容的提问来源于stack exchange,提问作者xava

火山引擎 最新活动