插件窝 干货文章 docker怎么拷贝文件系统

docker怎么拷贝文件系统

容器 Docker 文件 拷贝 612    来源:    2025-04-28

Docker 文件系统拷贝方法

在 Docker 中有几种方法可以拷贝文件系统或容器内的文件:

1. 使用 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/

2. 使用数据卷(Volumes)

创建数据卷并在容器间共享:

# 创建数据卷
docker volume create myvolume

# 启动容器并挂载数据卷
docker run -d --name container1 -v myvolume:/data someimage
docker run -d --name container2 -v myvolume:/data anotherimage

3. 导出/导入整个文件系统

# 导出容器文件系统为tar包
docker export <容器ID> > container_fs.tar

# 从tar包创建镜像
cat container_fs.tar | docker import - newimagename:tag

4. 保存/加载镜像

# 保存镜像为tar文件
docker save -o image.tar imagename:tag

# 加载镜像
docker load -i image.tar

5. 使用 commit 创建新镜像

# 将容器当前状态提交为新镜像
docker commit <容器ID> newimagename:tag

注意事项

  1. docker cp 适合少量文件操作,大量文件建议使用数据卷
  2. 对于正在运行的容器,文件拷贝可能会受到文件锁定的影响
  3. 数据卷是Docker中持久化数据的推荐方式
  4. 导出/导入方法会丢失镜像的元数据和历史记录

选择哪种方法取决于你的具体需求:少量文件拷贝、数据持久化还是完整文件系统迁移。