在 Docker 中有几种方法可以拷贝文件系统或容器内的文件:
docker cp
命令这是最直接的拷贝方法,可以在容器和主机之间复制文件:
# 从容器拷贝文件到主机
docker cp <容器名或ID>:<容器内路径> <主机目标路径>
# 从主机拷贝文件到容器
docker cp <主机文件路径> <容器名或ID>:<容器内路径>
示例:
# 拷贝容器内的 /app/config.json 到主机的当前目录
docker cp mycontainer:/app/config.json .
# 拷贝主机的 setup.sh 到容器的 /tmp 目录
docker cp setup.sh mycontainer:/tmp/
创建数据卷并在容器间共享:
# 创建数据卷
docker volume create myvolume
# 启动容器并挂载数据卷
docker run -d --name container1 -v myvolume:/data someimage
docker run -d --name container2 -v myvolume:/data anotherimage
# 导出容器文件系统为tar包
docker export <容器ID> > container_fs.tar
# 从tar包创建镜像
cat container_fs.tar | docker import - newimagename:tag
# 保存镜像为tar文件
docker save -o image.tar imagename:tag
# 加载镜像
docker load -i image.tar
# 将容器当前状态提交为新镜像
docker commit <容器ID> newimagename:tag
docker cp
适合少量文件操作,大量文件建议使用数据卷选择哪种方法取决于你的具体需求:少量文件拷贝、数据持久化还是完整文件系统迁移。