docker|docker实例内文件下载
使用 docker cp 命令
- 基本命令格式
docker cp <容器名或ID>:<容器内文件路径> <宿主机目标路径>
- 操作步骤
- 确认容器信息
从你之前的信息看,MySQL 容器的 ID 是 1a890fa32f71,名称是 mysql。你可以用其中任何一个
- 执行复制命令:
- 复制单个文件:例如,将容器内的 /var/log/mysql/error.log 文件复制到宿主机的当前目录
bash docker cp 1a890fa32f71:/var/log/mysql/error.log ./mysql_error.log- 复制整个目录:例如,将容器内的 /etc/mysql 目录完整复制到宿主机的当前目录
bash docker cp 1a890fa32f71:/etc/mysql ./mysql_config
实用技巧
- 容器状态:docker cp 命令在容器运行中或已停止的状态下都可以使用
- 路径格式:容器内的路径是绝对路径,以 / 开头
- 目标路径:<宿主机目标路径> 可以是一个目录,也可以指定新的文件名
- 重命名文件:如果想在复制时重命名,直接在目标路径中指定新文件名即可,如上面的第一个例子
备选方案
命令格式:
docker export -o <备份文件名>.tar <容器名或ID>
docker export 导出的文件系统快照不包含容器的层历史记录和元数据。如果需要迁移镜像,应使用 docker save 命令
总结与提示
- 首选 docker cp:对于复制单个文件或目录,这是最高效、最直接的方法
- 使用 docker export:当需要完整备份或迁移容器的整个文件系统状态时使用
- 路径确认:如果不确定文件在容器内的具体路径,可以先通过 docker exec -it <容器名> /bin/bash 进入容器内部查看
