Docker节点提交容器不维护流和模块

Docker节点提交容器不维护流和模块,docker,node-red,Docker,Node Red,我正在使用docker部署的NodeRed进行一个项目,我希望保存我的部署状态,包括流、设置和新添加的模块,以便我可以保存映像并将其加载到另一台复制完全相同的NodeRed实例的主机上 我使用以下方法创建了容器: docker run -itd --name my-nodered node-red 在实现流并安装一些自定义模块后,在容器运行的情况下,我使用以下命令: docker commit my-nodered my-project-nodered/my-nodered:version1

我正在使用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
我获得了一个普通的nodereddocker容器,它有一个默认的/data目录,并且只维护数据目录上的文件

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


提前非常感谢

提交将不起作用,因为您可以看到中定义了卷

这样就不可能在目录树中创建包含任何不同内容的派生映像。(这与无法使用预填充数据创建mysql或postgresql映像的原因相同。)

DOCKER提交根本不考虑卷,因此您将得到一个没有任何预装的图像。 您可以查看官方文档

管理用户数据

一旦您让Node RED与Docker一起运行,我们需要确保 如果容器被销毁,添加的节点或流不会丢失。这 通过将数据目录装载到卷,用户数据可以保持 容器外部。这可以使用绑定挂载或 命名数据卷

节点RED使用容器内的
/data
目录存储用户 配置数据

一种方法是在另一台机器上恢复配置文件,例如
backup config
then

docker run -it -p 1880:1880 -v $PWD/backup-config/:/data --name mynodered nodered/node-red-docker
或者,如果你想全额回购,那么你可以试试

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 run -it -p 1880:1880 -v $PWD/backup-config/:/data --name mynodered nodered/node-red-docker
docker run -it --rm -v "$PWD/$(wget https://raw.githubusercontent.com/openenergymonitor/oem_node-red/master/flows_emonpi.json)":/data/ nodered/node-red-docker