插件窝 干货文章 如何拷贝Docker容器里的东西

如何拷贝Docker容器里的东西

容器 宿主机 Docker 文件 1012    来源:    2025-04-29

如何从Docker容器中拷贝文件

有几种方法可以从Docker容器中拷贝文件到宿主机:

1. 使用docker cp命令

这是最简单直接的方法:

docker cp <容器名或ID>:<容器内路径> <宿主机目标路径>

例如:

docker cp mycontainer:/app/data.txt /home/user/documents/

反向操作(从宿主机拷贝到容器):

docker cp /home/user/documents/data.txt mycontainer:/app/

2. 使用卷挂载(Volume Mount)

在运行容器时挂载宿主机目录:

docker run -v /宿主机路径:/容器内路径 image_name

这样容器内的文件更改会实时同步到宿主机。

3. 使用临时容器

# 创建临时容器并挂载卷
docker run --rm -it -v /宿主机路径:/data image_name bash
# 然后在容器内将文件复制到/data目录
cp /path/to/file /data/

4. 使用docker export

导出整个容器文件系统:

docker export <容器ID> > container.tar

5. 使用docker commit

将容器保存为新镜像,然后从中提取文件:

docker commit <容器ID> temp_image
docker run --rm -it -v /宿主机路径:/data temp_image bash -c "cp /path/to/file /data/"

注意事项

  • 确保你有足够的权限执行这些操作
  • 对于正在运行的容器,某些文件可能被锁定
  • 对于大型文件或目录,使用卷挂载通常更高效
  • 使用docker exec可以查看容器内文件结构:docker exec -it <容器名> ls /path

选择哪种方法取决于你的具体需求和场景。