You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将文件复制到docker-cloud容器?(即不使用scp通过SSH传文件)

我之前也碰到过这个头疼的问题——docker-machine自带scp功能,能轻松在本地和节点之间传文件,但Docker Cloud确实没提供直接在本地和云端容器互传文件的方法。折腾了好一阵后终于摸出了可行的方案,分享给大家,也欢迎各位大佬提出更简洁的办法!(虽说Docker Cloud马上要停用了,但这个中转思路说不定在其他类似的云平台也能用上)

解决方案:借助宿主机中转

核心逻辑

Docker Cloud没法直接打通本地和容器的文件传输,但我们可以利用容器所在的宿主机作为中间桥梁:先把文件在本地和宿主机之间传输(用docker-machine的scp),再在宿主机和容器之间拷贝(用docker自带的cp命令),双向传输都适用。

具体操作步骤

1. 定位容器所在的宿主机

你可以通过Docker Cloud的Web界面查看,或者用命令行快速获取:

docker-cloud node ls

从输出里找到目标容器对应的宿主机名称(或IP)。

2. 本地 → 云端容器

  • 第一步:把本地文件传到宿主机(在本地终端执行)
docker-machine scp /本地文件的绝对路径 <宿主机名称>:/宿主机的临时路径

举个例子:

docker-machine scp ~/documents/report.pdf my-cloud-node:/tmp/report.pdf
  • 第二步:从宿主机拷贝到容器
    先通过docker-machine ssh进入宿主机的shell:
docker-machine ssh <宿主机名称>

然后执行docker cp命令:

docker cp /tmp/report.pdf <容器ID或自定义名称>:/app/report.pdf

3. 云端容器 → 本地

  • 第一步:从容器拷贝文件到宿主机(在宿主机的ssh窗口执行)
docker cp <容器ID或自定义名称>:/app/logs/access.log /tmp/access.log
  • 第二步:把宿主机上的文件拉回本地(切换到本地终端执行)
docker-machine scp <宿主机名称>:/tmp/access.log ~/downloads/access.log

实用小提示

  • 建议给容器设置一个好记的自定义名称,避免每次都输入冗长的容器ID
  • 宿主机的临时路径优先选/tmp,用完可以手动删除,避免占用不必要的存储空间

内容的提问来源于stack exchange,提问作者mltsy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:46:42