跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

怎样在docker容器和宿主机之间复制文件? cp命令怎么用?

使用 docker cp 命令是容器与宿主机之间复制文件的常用方法,其操作类似于 linux 的 cp 命令。1. 将宿主机文件复制到容器:语法为 docker cp [宿主机路径] [容器id/名称]:[容器内目标路径],如 docker cp app.py my_container:/var/www/;2. 从容器复制文件到宿主机:语法顺序相反,如 docker cp my_container:/var/log/app.log ./logs/,可先进入容器查看文件结构;3. 支持复制整个目录,如 docker cp src my_container:/home/app/,复制大文件时速度可能受限于系统性能。 在 Docker 容器和宿主机之间复制文件,最常用的方法就是使用
docker cp
命令。这个命令类似于 Linux 的
cp
命令,但专门用于在容器和宿主机之间传输数据。 1. 把文件从宿主机复制到容器里 语法格式是这样的:
docker cp [宿主机上的路径] [容器ID或名称]:[容器内的目标路径]
举个例子,如果你想把本地的
app.py
文件复制到名为
my_container
的容器中的
/var/www/
目录下,就可以这样写:
docker cp app.py my_container:/var/www/
注意几点: 容器必须存在(可以是运行中,也可以是停止状态) 路径要写对,特别是容器内部的路径,如果目录不存在会报错 如果你不确定容器名字或 ID,可以用
docker ps
查看当前运行的容器,或者用
docker ps -a
看所有容器 2. 把文件从容器复制回宿主机 反过来也是一样操作,只是顺序换一下:
docker cp [容器ID或名称]:[容器内的文件路径] [宿主机上的目标路径]
比如你想把容器里的
/var/log/app.log
拿出来保存到当前目录下的
logs
文件夹: Docker Sandbox 创建并管理 Docker 沙箱虚拟机环境以安全执行代理。适用于运行不受信任代码、探索包或隔离代理工作负载。支持 Claude、Codex、Copilot、Gemini 和 Kiro 代理,并提供网络代理控制。 下载
docker cp my_container:/var/log/app.log ./logs/
这里有个小技巧:如果你不知道容器里具体有什么文件,可以先进入容器看看:
docker exec -it my_container /bin/bash
然后用
ls
找到你要复制的文件路径,再退出来执行
docker cp
。 3. 复制整个目录也一样操作 不管是复制单个文件还是整个目录,
docker cp
都支持。比如复制整个
src
文件夹进去:
docker cp src my_container:/home/app/
它会自动把整个目录结构一起复制进去。反过来也一样,你可以从容器里复制出一个目录。 需要注意的是:复制大文件或大量文件时可能会有点慢,这是正常现象,取决于你的系统性能和文件大小。 基本上就这些。只要记住方向和路径就行,
docker cp
是个简单但非常实用的命令,平时调试、部署经常用得上。

相关文章