gpt4 book ai didi

Docker NodeRed 提交的容器不维护流和模块

转载 作者:行者123 更新时间:2023-12-02 19:01:49 26 4
gpt4 key购买 nike

我正在使用通过 docker 部署的 NodeRed 进行项目,我想保存我的部署状态,包括流程、设置和新添加的模块,以便我可以保存图像并将其加载到另一台复制完全相同 NodeRed 的主机上实例。

我使用以下方法创建了容器:

docker run -itd --name my-nodered node-red

在实现流程并安装一些自定义模块后,在容器运行的情况下,我使用了以下命令:
docker commit my-nodered my-project-nodered/my-nodered:version1
docker save my-project-nodered/my-nodered:version1 > tar-archive.tar.gz

在另一台机器上,我使用以下方法导入了图像:
docker load < tar-archive.tar.gz

并使用以下命令运行它:
docker run -itd my-project-nodered/my-nodered:version1

我获得了一个带有默认/data 目录的普通 NodeRed docker 容器,并且只保留了数据目录中的文件。

我错过了什么?我的/data 目录以及主目录中的 settings.js 文件可能被覆盖了吗?在这种情况下,实现我的目标的最佳实践是什么?

非常感谢你提前

最佳答案

提交将不起作用,您可以看到 Dockerfile 中定义了卷。 .

# User configuration directory volume
VOLUME ["/data"]

这使得不可能在该目录树中创建具有任何不同内容的派生图像。 (这与您无法使用预填充数据创建 mysql 或 postgresql 镜像的原因相同。)

docker commit 根本不考虑卷,所以你会得到一个没有预加载的未更改的图像。

可以看官方文档

管理用户数据

Once you have Node-RED running with Docker, we need to ensure any added nodes or flows are not lost if the container is destroyed. This user data can be persisted by mounting a data directory to a volume outside the container. This can either be done using a bind mount or a named data volume.

Node-RED uses the /data directory inside the container to store user configuration data.



nodered-user-data-in-docker

一种方法是在另一台机器上恢复您的配置文件,例如 backup-config然后
docker run -it -p 1880:1880 -v $PWD/backup-config/:/data --name mynodered nodered/node-red-docker

或者如果你想完整一些 repo ,那么你可以尝试
docker run -it --rm -v "$PWD/$(wget https://raw.githubusercontent.com/openenergymonitor/oem_node-red/master/flows_emonpi.json)":/data/ nodered/node-red-docker

关于Docker NodeRed 提交的容器不维护流和模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58873704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com