[CRIU] checkpointing a docker container and restoring the process to a new container

Pavel Emelyanov xemul at parallels.com
Fri Apr 24 06:59:25 PDT 2015


On 04/24/2015 04:47 PM, Ross Boucher wrote:
> inherit_fd is being used -- this example works fine if I restore to the same container, 
> it's only breaking now that I'm attempting to restore into a completely different container.

So the pipe doesn't get inherited when you restore into different container?

> On Fri, Apr 24, 2015 at 4:50 AM, Pavel Emelyanov <xemul at parallels.com <mailto:xemul at parallels.com>> wrote:
> 
>     On 04/24/2015 12:11 AM, Ross Boucher wrote:
>     > Another update: I was intrigued by the exit code (which implies SIGPIPE?), since the docker process
>     > I was running was indeed piping:
>     >
>     >     /bin/sh -c 'i=0; while true; do echo $i; i=$(expr $i + 1); sleep 3; done'
>     >
>     > I tried the same process of checkpointing in one container and restoring to another by writing to a file instead:
>     >
>     >     /bin/sh -c 'i=0; while true; do echo $i > /tmp/foo; i=$(expr $i + 1); sleep 3; done'
>     >
>     > And this worked correctly! So I've narrowed it done some more, and I'll continue to look into it.
> 
>     If these are pipes indeed (docker terminals?) then the --inherit-fd option should be used.
>     Saied (from Google) did some work doing this for docker+criu, he can shed more light, but
>     he's on vacation right now :)
> 
>     -- Pavel
> 
> 



More information about the CRIU mailing list