如何将文件/文件夹从 Windows 共享位置复制到 docker 容器中?

Posted

技术标签:

【中文标题】如何将文件/文件夹从 Windows 共享位置复制到 docker 容器中?【英文标题】:How to copy files/folders from Windows shared location into docker container? 【发布时间】:2021-03-04 06:46:35 【问题描述】:

对于将文件/文件夹从主机复制到容器或反之亦然,我可以看到 docker 命令,例如 -

docker cp foo.txt mycontainer:/foo.txt
docker cp mycontainer:/foo.txt foo.txt

但我有一个来自远程位置的共享文件夹,我需要将其复制到 docker 容器中。

即我的管道在主机 A(可能是 Windows/Linux)上运行,共享文件夹在远程主机 B(将始终是 Windows 机器)上,需要将该文件夹从主机 B 复制到在主机 A 上运行的容器

有没有 docker 命令来实现这个?

在我们的例子中,主机 A 可能是 Windows 或 Linux 机器,因此我必须以不同的方式处理它,因此无论操作系统如何,都要寻找一些 docker 命令。

【问题讨论】:

【参考方案1】:

共享文件夹位于远程主机 B 上,使用 SMB protocol。据我所知,docker 不支持通过 SMB 协议将文件复制到您的容器的任何直接命令。

在你的情况下,让一切顺利进行。您需要再创建一个容器,任务是运行samba-client。然后你可以从主机 B 获取文件并使用如下命令将其保存到主机 A:

smbget -R smb://hostB/directory

然后你就可以像往常一样将主机A的文件复制到容器中了。

【讨论】:

以上是关于如何将文件/文件夹从 Windows 共享位置复制到 docker 容器中?的主要内容,如果未能解决你的问题,请参考以下文章

如何从网络共享访问受密码保护的文件? [复制]

如何使用 phonegap 将文件从一个位置移动/复制到另一个位置

如何将windows7里的文件复制到ubuntu中?

如何将 chrome 书签从单个桌面上的不同用户配置文件复制到另一个网络位置

从另一个用户和域将文件写入某个位置

如何编写 Windows 批处理脚本以从目录中复制最新文件?