更新Iot Edge模块时防止丢失文件


v-star*위위
2025-03-11 06:18:28 (25天前)
  1. 我已经实现了一个将文件保存到光盘的azure iotedge模块。

每次我更新到我的模块的新版本时,在此之前保存的所有文件都将丢失。如何更新我的模块并仍然保持…

3 条回复
  1. 0# 土豆 | 2019-08-31 10-32



    默认情况下,文件保存到模块的docker容器中。如果更新模块,则会创建一个新的docker容器,并丢弃包含文件的旧容器。



    如果要保留文件,则必须将它们保存在docker容器之外。
    为此,您必须将主机的文件夹绑定到模块的容器中。



    您可以通过在部署模板中设置模块的createOptions来实现,如下所示:




    1. createOptions”: {
      HostConfig”: {
      Binds”: [
      “/path/on/host/:/app/files/“
      ]
      }
      }

    2. </code>


    如果您将文件保存到

    “./files/myfile.txt”
    </强>
    在你的模块中,它实际上会保存到

    “/path/on/host/myfile.txt”
    </强>
    在托管模块的docker容器的机器上,更新模块后它仍然存在。



    在启动模块之前,您必须手动在主机上创建文件夹。
    并且您必须为moduleUser提供读/写访问权限。您可以这样做:




    sudo chown 1000 / path / on / host




    然后




    sudo chmod u + rw / path / on / host




    注意:由于其他iotedge docker容器的用户也具有UID 1000,因此他们也可以访问该文件夹。对于主机的第一个非root用户(通常也具有UID 1000)也是如此。


  2. 1# google你他吗 | 2019-08-31 10-32



    如果您需要从Windows转到Windows,您可以执行以下操作:




    1. createOptions”: {
      HostConfig”: {
      Binds”: [
      C:\Temp\output:C:\app\files\”
      ]
      }

    2. </code>


    }



    我还没想到的是如何从Windows转到linux。


登录 后才能参与评论