Linux 跨服务器导出 Docker 容器内文件

目录

一、适用场景

二、前置信息(必填)

三、推荐命令(一键导出,优先使用)

四、分步教学(稳妥版,适合新手)

步骤1:登录远程服务器

步骤2:验证容器是否存在

步骤3:验证容器内目标路径是否存在

步骤4:远程服务器本地打包导出

步骤5:本地服务器拉取文件

五、常见错误及解决方案

[1. 报错:Could not resolve hostname](#1. 报错:Could not resolve hostname)

[2. 报错:docker export 无法指定路径](#2. 报错:docker export 无法指定路径)

六、通用空白模板(可直接分发/存档)


说明:文档中 IP 已预留替换位置,可直接根据自身实际情况修改,适配所有 Linux 系统跨服务器 Docker 文件导出场景。

一、适用场景

核心需求:将 远程 Linux 服务器 A 上某个 Docker 容器内的指定目录/文件,导出至 本地服务器 B(当前操作服务器)。

本次实操目标:将容器内路径 /usr/local/rds/log 导出到本地当前目录,保存为指定日志文件。

二、前置信息(必填)

  • 远程服务器 IP:【替换为你的远程服务器真实IP】
  • 远程服务器用户名:root(默认通用,若为其他用户名可替换)
  • 目标容器 ID/容器名:afe3bb593f26(替换为自身容器信息)
  • 容器内待导出路径:/usr/local/rds/log(固定本次目标路径)
  • 本地保存文件名:jobschedule.logjobschedule_log.tar(二选一,tar 格式适合目录打包)

三、推荐命令(一键导出,优先使用)

操作场景:在 本地服务器 B 直接执行,无需登录远程服务器,高效便捷。

通用命令模板:

复制代码
ssh 用户名@远程服务器IP "docker cp 容器ID:/容器内路径 -" > 本地文件名

适配本次场景(直接复制,替换IP即可):

复制代码
ssh root@远程服务器IP "docker cp afe3bb593f26:/usr/local/rds/log -" > jobschedule_log.tar

操作说明:执行命令后,输入远程服务器 root 密码,等待导出完成即可(进度无显示,耐心等待即可)。

四、分步教学(稳妥版,适合新手)

若一键命令执行失败,可按以下步骤分步操作,全程可验证,降低出错概率。

步骤1:登录远程服务器
复制代码
ssh root@远程服务器IP

输入远程服务器密码,成功登录后进入远程服务器命令行。

步骤2:验证容器是否存在
复制代码
docker ps -a

查看输出结果,确认 afe3bb593f26(容器ID)是否在列表中,状态正常即可。

步骤3:验证容器内目标路径是否存在
复制代码
docker exec afe3bb593f26 ls /usr/local/rds/log

若输出路径下的文件/目录,说明路径有效;若报错"No such file or directory",请检查路径是否输入错误。

步骤4:远程服务器本地打包导出
复制代码
docker cp afe3bb593f26:/usr/local/rds/log /root/jobschedule_log.tar

将容器内路径导出到远程服务器的 /root 目录下,保存为 tar 包(可修改远程保存路径)。

步骤5:本地服务器拉取文件

先输入 exit 退出远程服务器登录,回到本地服务器命令行,执行以下命令:

复制代码
scp root@远程服务器IP:/root/jobschedule_log.tar ./

执行后输入远程密码,即可将远程服务器的 tar 包拉取到本地当前目录(./ 表示当前目录)。

五、常见错误及解决方案

1. 报错:Could not resolve hostname

核心原因 :命令格式错误,IP 与命令之间缺少空格,或遗漏 root@

错误写法(示例):

复制代码
ssh 1.2.3.4"docker cp afe3bb593f26:/usr/local/rds/log -" > jobschedule_log.tar

正确写法(示例):

复制代码
ssh root@1.2.3.4 "docker cp afe3bb593f26:/usr/local/rds/log -" > jobschedule_log.tar
2. 报错:docker export 无法指定路径

核心原因 :混淆 docker exportdocker cp 的用途。

关键说明:docker export 仅能导出整个容器 ,无法指定单个目录/文件;导出容器内具体文件/目录,必须使用 docker cp 命令。

正确命令格式:

复制代码
docker cp 容器ID:容器内路径 目标保存路径

六、通用空白模板(可直接分发/存档)

无需修改格式,仅替换 远程服务器IP容器ID 即可适配所有类似场景:

复制代码
# 跨服务器一键导出 Docker 容器内目录到本地(通用模板)
ssh root@远程服务器IP "docker cp 容器ID:/容器内路径 -" > 本地保存文件名.tar

# 本次场景专用模板(替换IP即可)
ssh root@远程服务器IP "docker cp afe3bb593f26:/usr/local/rds/log -" > jobschedule_log.tar
相关推荐
DeepHacking2 小时前
Ubuntu 22.04 安装 Allow Locked Remote Desktop 扩展:解决锁屏后 mstsc 无法连接的问题
linux·运维·ubuntu
广州灵眸科技有限公司2 小时前
瑞芯微(EASY EAI)RV1126B QT GUI例程方案
linux·服务器·开发语言·网络·人工智能·qt·物联网
dingdingfish2 小时前
TLPI 第4章 练习:File I/O: The Universal I/O Model
linux·tlpi·exercise
李日灐2 小时前
<3>Linux 基础指令:从时间、查找、文本过滤到 .zip/.tgz 压缩解压与常用热键
linux·运维·服务器·开发语言·后端·面试·指令
木雷坞2 小时前
2026年了,NAS拉个Docker镜像还要3小时?技术方案PK与实测对比 🚀
运维·docker·容器
hughnz2 小时前
自动化控压钻井系统的挑战与风险
linux·服务器·网络
色空大师2 小时前
【linux开放端口-以8848为例】
linux·运维·服务器·防火墙
咋吃都不胖lyh2 小时前
在 Linux 环境下,查看、编辑并使环境变量生效
linux·运维·服务器
曼岛_2 小时前
[网络安全] Linux权限维持-隐藏篇
linux·安全·web安全·安全威胁分析