有几种方法可以将Docker容器中的文件拷贝到宿主机(本地系统):
docker cp
命令这是最直接的方法:
docker cp <容器名或ID>:<容器内文件路径> <宿主机目标路径>
示例:
# 将容器内/app/config.conf文件拷贝到当前目录
docker cp mycontainer:/app/config.conf .
# 将容器内/logs目录拷贝到宿主机的/tmp目录
docker cp mycontainer:/logs /tmp
如果事先挂载了卷,文件会自动同步:
# 启动容器时挂载卷
docker run -v /宿主机路径:/容器内路径 ...
# 示例
docker run -v $(pwd)/data:/data myimage
对于已停止的容器,可以创建临时容器来拷贝文件:
docker create --name temp_container myimage
docker cp temp_container:/path/to/file /host/path
docker rm temp_container
# 提交容器为新镜像
docker commit container_id new_image_name
# 导出镜像为tar文件
docker save new_image_name > image.tar
# 解压tar文件获取内容
tar -xvf image.tar
docker cp
更高效需要更具体的帮助吗?例如针对某个特定场景的操作?