有几种方法可以从Docker容器中拷贝文件到宿主机:
这是最简单直接的方法:
docker cp <容器名或ID>:<容器内路径> <宿主机目标路径>
例如:
docker cp mycontainer:/app/data.txt /home/user/documents/
反向操作(从宿主机拷贝到容器):
docker cp /home/user/documents/data.txt mycontainer:/app/
在运行容器时挂载宿主机目录:
docker run -v /宿主机路径:/容器内路径 image_name
这样容器内的文件更改会实时同步到宿主机。
# 创建临时容器并挂载卷
docker run --rm -it -v /宿主机路径:/data image_name bash
# 然后在容器内将文件复制到/data目录
cp /path/to/file /data/
导出整个容器文件系统:
docker export <容器ID> > container.tar
将容器保存为新镜像,然后从中提取文件:
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
选择哪种方法取决于你的具体需求和场景。