Bash 如何使用保存和导出进行容器迁移

Bash 如何使用保存和导出进行容器迁移,bash,docker,docker-compose,Bash,Docker,Docker Compose,我们有一个通过docker compose文件使用docker容器的项目。我正在尝试自动备份和恢复当前容器状态 因此,我执行以下命令: docker保存节点/node red>nodered_image.tar docker导出应用程序\u nodered\u 1>nodered\u container.tar 然后,我将tar文件上载到新服务器,并继续执行以下操作 docker rmi节点化/节点红色 docker负载

我们有一个通过docker compose文件使用docker容器的项目。我正在尝试自动备份和恢复当前容器状态

因此,我执行以下命令:

docker保存节点/node red>nodered_image.tar
docker导出应用程序\u nodered\u 1>nodered\u container.tar
然后,我将tar文件上载到新服务器,并继续执行以下操作

docker rmi节点化/节点红色
docker负载
然后执行
docker compose up
,得到以下错误:

错误:对于应用程序\u节点化\u 1无法为服务节点化创建容器:未指定命令

我也尝试过做以下的事情

cat nodered_container.tar | docker import--change'CMD[“npm--无更新通知程序--无资金启动--cache/data/.npm--userDir/data--privileged”]--nodered/node red
它给了我以下信息:

错误:对于应用程序\u nodered\u 1无法启动服务nodered:OCI运行时创建失败:容器\u linux.go:370:启动容器进程导致:exec:“npm--无更新通知程序--无资金启动--cache/data/.npm--

我的docker compose包含以下内容:

版本:“3.6”
服务:
点点头:
#取决于:
图像:节点化/节点红色
端口:
- "8180:1880"
重新启动:始终
环境:
#在这里定义您的tz
-TZ=欧洲/布鲁塞尔
卷数:
#映射数据量
-/var/app/node red:/data
-/var/app/certs节点红色:/data/certs
-/var/app/ftp:/data/ftp:Z
-/var/app/archive:/data/archive

您几乎从来没有这样做过。因为您的所有数据都是从主机目录装载的,所以备份主机的
/var/app
目录就足够了;即使您
docker compose down和&docker compose up
它仍然会有相同的数据。不要担心“容器”“作为一个实体。@DavidMaze我很遗憾地意识到,如果我压缩导出的卷并传输我的一半nodered/grafana工作流等丢失了。此外,所有vsftpd文件都会失去容器中各种用户的所有权限。您几乎从未这样做过。由于所有数据都是从主机目录装载的,因此备份主机的
/var/app
目录就足够了;即使您
docker-compose-down和&docker-compose-up
,它仍将具有相同的数据。不要担心“容器”作为一个实体。@DavidMaze如果我压缩导出的卷并传输一半的nodered/grafana工作流等,我会很遗憾地意识到这一点。此外,所有vsftpd文件都会失去容器中各种用户的所有权限。