You need to enable JavaScript to run this app. Containerd中如何实现等效docker cp从容器拷贝文件到宿主机的操作
优惠活动
大模型
产品
解决方案
定价
更多

Containerd中如何实现等效docker cp从容器拷贝文件到宿主机的操作

Containerd 等效 docker cp 命令的实现方法

通用场景操作(运行中容器推荐)

Containerd 原生的 ctr 命令没有提供直接的 cp 子命令,可以通过tar管道配合容器执行命令实现文件拷贝:

从容器拷贝文件到宿主机

命令语法:

ctr -n <命名空间> task exec -w / <容器ID> tar -cf - <容器内文件路径> | tar -xf - -C <宿主机目标目录>

你举的示例场景(将ed128ed容器内的/etc/file1拷贝到宿主机当前目录的file1)对应命令:

ctr -n default task exec -w / ed128ed tar -cf - etc/file1 | tar -xf - --strip-components=1

参数说明:

  • -n default 指定Containerd命名空间,Kubernetes创建的容器需要替换为-n k8s.io
  • --strip-components=1 用于去掉tar包自带的第一层目录前缀,直接提取出目标文件

从宿主机拷贝文件到容器

命令语法:

tar -cf - <宿主机文件路径> | ctr -n <命名空间> task exec -w / <容器ID> tar -xf - -C <容器内目标目录>

简化用法(兼容Docker命令)

如果你使用Containerd官方维护的兼容CLI工具nerdctl,可以直接使用和Docker完全一致的cp语法:

nerdctl cp ed128ed:/etc/file1 file1

已停止容器操作

如果容器处于停止状态无法执行exec命令,可以通过挂载容器快照层的方式拷贝文件:

  1. 创建临时挂载目录
    mkdir -p /tmp/ctr-mount
  2. 挂载容器可写快照层
    ctr -n default snapshots mount /tmp/ctr-mount ed128ed
  3. 拷贝目标文件
    cp /tmp/ctr-mount/etc/file1 ./file1
  4. 操作完成后卸载快照
    umount /tmp/ctr-mount

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 00:36:04