我有一台带有 Hyper-V Linux VM 的 Windows 10 主机,并且安装了 IOT EdgeAgent 和 EdgeHub 模块。 我已向 EdgeAgent 和 Hub 提供了 storageFolder 挂载,以将脱机文件存储在 EdgeHub 容器中的 var/iotedge/storage 位置。
我想运行 docker 命令来复制此嵌套 VM 容器文件与主机 Windows 本地 C:/TempEdge 文件夹。
第1步:使用“connect-eflowVM”命令连接到IotEdge VM 步骤2: sudo docker cp EdgeHub:/var/iotedge/storage "c:/TempEdge"
但是它将“c”视为另一个容器,并抛出无法在容器之间复制错误。
我尝试将“c:/TempEdge”替换为“//c/TempEdge”和“c/TempEdge”
但是随后它会抛出 no such file directory 错误。
在 EflowVM (hyper-V) 中运行此查询并将数据复制到主机 Windows C 驱动器的正确格式或方法是什么
我按照此链接通过Copy-EflowVmFile在 Windows 上使用适用于 Linux 的 Azure IoT Edge 的 PowerShell 函数。
先决条件:
文章中提到的命令包含在
AzureEFLOW.psm1
文件中。您可以在系统上位于 C:\Program Files\WindowsPowerShell\Modules\AzureEFLOW
的 WindowsPowerShell 目录中找到此文件。
如果 PowerShell 目录中缺少
AzureEflow
文件夹,则必须按照以下步骤在 Windows 上下载并安装适用于 Linux 的 Azure IoT Edge:
Start-Process
命令在设备上安装 Windows 上的 IoT Edge for Linux。AllSigned
PowerShell 命令将目标设备上的执行策略至少设置为 Set-ExecutionPolicy
。Copy-EflowVmFile
命令是一项旨在利用安全复制协议 (SCP) 将文件复制到虚拟机或从虚拟机复制文件的功能。
复制EflowVmFile:
Copy-EflowVmFile -fromFile "localpathtosource/file.txt" -toFile "remotepathonvm/file.txt" -pushFile
-fromFile
:定义要从中复制的本地文件路径。-toFile
:定义要将文件复制到的虚拟机上的远程文件路径。-pushFile
:该标志决定复制方向。如果包含,则表示您正在将文件传输到虚拟机。如果省略,则表示您正在从虚拟机中检索文件。有关该命令的详细信息,请使用
Get-Help
命令:
Get-Help Copy-EflowVMFile -Full
Connect-EflowVm 命令建立与虚拟机的 SSH 连接。
Connect-EflowVm
确保在执行
Copy-EflowVmFile
命令之前在 EFlow 中创建文件夹。
mkdir Folder