Docker容器与宿主机互相复制文件docker cp Docker
前言
需要把宿主机的配置文件拷进容器,或把容器里生成的日志导出到宿主机,docker cp 是最直接的命令,不需要进入容器内部,也不依赖数据卷。本文讲解容器到宿主机、宿主机到容器、批量目录复制、结合挂载的区别和注意事项。
操作步骤
1. 宿主机文件复制到容器
docker cp ./config.conf 容器名:/etc/app/config.conf
2. 容器内文件复制到宿主机
docker cp 容器名:/var/log/app.log ./app.log
3. 复制整个目录
docker cp ./dir 容器名:/opt/
目标末尾加 / 表示放入该目录。
4. 用容器 ID 代替名称
docker cp ./file.txt abcd123:/path/file.txt
5. 查看容器内文件确认
docker exec -it 容器名 ls /etc/app
6. 与数据卷挂载的区别
docker cp 是一次性拷贝,修改不会同步;要持续同步用 -v 挂载。
常见坑
- 目标路径不存在,cp 报错,先确认容器内目录。
- 复制后容器重启,手动拷贝的文件仍在容器层,删除容器即丢失。
- 把目录当文件复制,目标层级错误。
- 权限属主不对,容器内程序读不到文件。
- 大文件复制占磁盘,注意容器层空间。
- 正在运行的容器也能 cp,无需停止。
- 挂载卷里的文件直接在宿主机改,不必 cp。
总结
docker cp 支持双向复制单个文件和目录,命令简单,适合临时传配置、导出日志。它是一次性拷贝不持久,长期文件同步用数据卷。复制后进容器确认路径和权限,重要文件注意容器删除后数据丢失。
遇到问题加QQ23979811 协助处理