docker从检查点还原-cgroup和mountpoints错误

docker从检查点还原-cgroup和mountpoints错误,docker,restore,checkpoint,Docker,Restore,Checkpoint,我正在使用检查点并保持源容器处于活动状态(--leave running),然后将该检查点恢复到新创建的容器中(具有不同的IP地址) 但是,我在处理装入点和cgroup时遇到了问题。当我使用检查点启动新容器时,我得到 1: mnt: Bind /home/abc to ./HOME 1: Error (mount.c:2406): mnt: Can't mount at ./HOME: No such file or directory 1: Error (mount.c:2555):

我正在使用检查点并保持源容器处于活动状态(--leave running),然后将该检查点恢复到新创建的容器中(具有不同的IP地址)

但是,我在处理装入点和cgroup时遇到了问题。当我使用检查点启动新容器时,我得到

1: mnt:      Bind /home/abc to ./HOME
1: Error (mount.c:2406): mnt: Can't mount at ./HOME: No such file or directory
1: Error (mount.c:2555): mnt: Unable to statfs ./HOME: No such file or directory
Error (cr-restore.c:1352): 30140 killed by signal 9
Error (cr-restore.c:2182): Restoring FAILED
cgroups错误为:

 45: Error (cgroup.c:1152): cg: No set 1 found
  1: Error (cr-restore.c:1350): 45 exited, status=1
Error (cr-restore.c:1352): 30140 killed by signal 9
Error (cr-restore.c:2182): Restoring FAILED
我推测这是由于mountpoint-12.img和cgroup.img(通过使用crit decode显示)引用了旧的容器id

crit decode -i mountpoints-12.img --pretty | grep nsroot
crit decode -i cgroup.img --pretty | grep docker
显示了旧的容器id

crit decode -i mountpoints-12.img --pretty | grep nsroot
crit decode -i cgroup.img --pretty | grep docker
我采用了同样的crit解码——sed替换——crit编码策略,我在skinet中使用过;但这并没有解决问题。我验证了转换后的mountpoints-12.img和cgroup.img是否引用了新的容器id。但是恢复仍然失败,并且出现了完全相同的错误。这就好像装入点变换和cgroup变换没有产生任何影响一样

我到底做错了什么?我必须说,这是我第一次在Ubuntu 16.04 xenial图像上通过docker进行CRIU。在过去,我对基于alpine的图像进行了检查,并且在检查新容器时没有遇到任何问题(旧容器正在运行)

主机系统是Ubuntu Xenial,默认的criu/crit是2.0-2ubuntu3。我升级到了最新的criu/crit,从它升级到了2.4。然而,我得到了同样的错误

我还对一个基于阿尔卑斯山的容器进行了测试。而且效果很好。因此,在基于UbuntuXenial的容器中,可能有什么东西正在将criu(检查点、恢复或两者)抛出到一个混乱的状态中

欢迎任何意见