IoTEdge有时会重新创建容器

时间:2019-08-14 21:18:06

标签: azure azure-iot-edge

我们正在运行IoT边缘模块。在模块内部,我们更新文件堆。我们注意到,大多数情况下,如果重新启动主机,则重新启动容器,而我们更新的文件仍然存在。 但是,我们很少注意到,当主机重新启动时,会从原始映像重新创建容器,因此所有数据更改都将丢失。

我们的理解是,物联网边缘正在使用docker restart policy = always,它应始终保留容器的数据。

1 个答案:

答案 0 :(得分:1)

我会有下一个建议:

  1. 不要在容器可写层上存储重要数据=>不要依赖重启策略
  2. 重建容器的原因可能是已部署的模块映像的新版本,因此使用新映像重新创建了容器
  3. 使用模块容器 createOptions 正确设置模块部署清单(example),并将本地卷附加到容器(createOptions->HostConfig->Binds)并存储您的数据在那里。这将在您的模块容器的所有娱乐活动中幸存下来。参见example。像这样:

    "createOptions": { "HostConfig": { "Binds": [ "/app/db:/app/db" ] } }