[CRIU] CRIU + Docker: can't restore into a new container

Manuel Rodríguez Pascual manuel.rodriguez.pascual at gmail.com
Wed Aug 10 02:37:16 PDT 2016


Hi,

I am a newbie with CRIU and Docker. I am exploring the possibilities
of docker migration with CRIU. However, I cannot restart the container
with a different name, as stated in the documentation. I was wondering
whether you could help me and point what I am doing wrong.

Below there are some tests. I have included information on the
versions of CRIU and docker, a successful  test on
checkpointing/restarting an image, and a failed test on restarting it
with a different name.

Thanks for your help,


Manuel


----
----
system info

$ uname -r
4.7.0-1.el7.elrepo.x86_64

$ criu --version
Version: 2.4

$ docker --version
Docker version 1.10.0-dev, build cec56b2, experimental


---
---
Successful experiment


[root at tecno15 tests]# docker run -d --name looper1 --security-opt
seccomp:unconfined busybox /bin/sh -c 'i=0; while true; do echo $i;
i=$(expr $i + 1); sleep 1; done'
b6ade11e3202a86ac540240bca871b48c09fffa8d2432101ab3e36d75882437e


[root at tecno15 tests]# docker run -d --name looper1 --security-opt
seccomp:unconfined busybox /bin/sh -c 'i=0; while true; do echo $i;
i=$(expr $i + 1); sleep 1; done'
b6ade11e3202a86ac540240bca871b48c09fffa8d2432101ab3e36d75882437e

[root at tecno15 tests]# docker ps
CONTAINER ID        IMAGE               COMMAND
CREATED             STATUS              PORTS               NAMES
b6ade11e3202        busybox             "/bin/sh -c 'i=0; whi"   16
seconds ago      Up 14 seconds                           looper1

[root at tecno15 tests]# docker logs looper1
0
1
2
3
4
5

[root at tecno15 tests]# docker checkpoint looper1
looper1

[root at tecno15 tests]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED
         STATUS              PORTS               NAMES

[root at tecno15 tests]# docker restore looper1
looper1

[root at tecno15 tests]# docker ps
CONTAINER ID        IMAGE               COMMAND
CREATED              STATUS              PORTS               NAMES
b6ade11e3202        busybox             "/bin/sh -c 'i=0; whi"   About
a minute ago   Up 1 seconds                            looper1

[root at tecno15 tests]# docker logs looper1
0
1
2
3
4
5
6
7
8
9
10
36
37
38
39
40

---
---
Failed experiment


[root at tecno15 tests]# docker create --name looper-force --security-opt
seccomp:unconfined busybox /bin/sh -c 'i=0; while true; do echo $i;
i=$(expr $i + 1); sleep 1; done'
d0ce905ea76fd63d544824e21cea7d5a7f8be953501b3551b0197f5b4e952c6b

[root at tecno15 tests]# docker ps -a
CONTAINER ID        IMAGE               COMMAND
CREATED             STATUS              PORTS               NAMES
d0ce905ea76f        busybox             "/bin/sh -c 'i=0; whi"   11
seconds ago      Created                                 looper-force
b6ade11e3202        busybox             "/bin/sh -c 'i=0; whi"   5
minutes ago       Up 3 minutes                            looper1

[root at tecno15 tests]# docker checkpoint looper1
looper1

[root at tecno15 tests]# docker ps -a
CONTAINER ID        IMAGE               COMMAND
CREATED             STATUS                        PORTS
NAMES
d0ce905ea76f        busybox             "/bin/sh -c 'i=0; whi"   51
seconds ago      Created
looper-force
b6ade11e3202        busybox             "/bin/sh -c 'i=0; whi"   5
minutes ago       Checkpointed 24 seconds ago
looper1

[root at tecno15 tests]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED
         STATUS              PORTS               NAMES

[root at tecno15 tests]#  docker restore --force=true
--image-dir=/home/supermanue/Downloads/tests/checkpoint looper2
Error response from daemon: No such container: looper2
Error: failed to restore one or more containers


---
---

Output from docker daemon (just last command)

DEBU[76347] Calling POST /v1.22/containers/looper-force/restore
DEBU[76347] POST /v1.22/containers/looper-force/restore?force=1
DEBU[76347] form data:
{"ImagesDirectory":"/home/supermanue/Downloads/tests/checkpoint","LeaveRunning":false,"WorkDirectory":""}
DEBU[76347] devmapper:
activateDeviceIfNeeded(4be7e83c48a3a448e1cc1a106b65172c9ac65c5e8385bcbcc58e69d65c1b9219)
DEBU[76348] container mounted via layerStore:
/var/lib/docker/0.0/devicemapper/mnt/4be7e83c48a3a448e1cc1a106b65172c9ac65c5e8385bcbcc58e69d65c1b9219/rootfs
DEBU[76348] Assigning addresses for endpoint looper-force's interface
on network bridge
DEBU[76348] RequestAddress(LocalDefault/172.18.0.0/16, <nil>, map[])
DEBU[76348] Assigning addresses for endpoint looper-force's interface
on network bridge
DEBU[76348] Releasing addresses for endpoint looper-force's interface
on network bridge
DEBU[76348] ReleaseAddress(LocalDefault/172.18.0.0/16, 172.18.0.4)
DEBU[76348] devmapper:
UnmountDevice(hash=4be7e83c48a3a448e1cc1a106b65172c9ac65c5e8385bcbcc58e69d65c1b9219)
DEBU[76348] devmapper:
Unmount(/var/lib/docker/0.0/devicemapper/mnt/4be7e83c48a3a448e1cc1a106b65172c9ac65c5e8385bcbcc58e69d65c1b9219)
DEBU[76348] devmapper: Unmount done
DEBU[76348] devmapper:
deactivateDevice(4be7e83c48a3a448e1cc1a106b65172c9ac65c5e8385bcbcc58e69d65c1b9219)
DEBU[76348] devmapper: removeDevice
START(docker-253:1-538129286-4be7e83c48a3a448e1cc1a106b65172c9ac65c5e8385bcbcc58e69d65c1b9219)
DEBU[76368] devmapper: removeDevice
END(docker-253:1-538129286-4be7e83c48a3a448e1cc1a106b65172c9ac65c5e8385bcbcc58e69d65c1b9219)
DEBU[76368] devmapper: deactivateDevice
END(4be7e83c48a3a448e1cc1a106b65172c9ac65c5e8385bcbcc58e69d65c1b9219)
DEBU[76368] devmapper:
UnmountDevice(hash=4be7e83c48a3a448e1cc1a106b65172c9ac65c5e8385bcbcc58e69d65c1b9219)
END
ERRO[76368] devmapper: Error unmounting device
4be7e83c48a3a448e1cc1a106b65172c9ac65c5e8385bcbcc58e69d65c1b9219:
Device is Busy
ERRO[76368] Error unmounting container
d0ce905ea76fd63d544824e21cea7d5a7f8be953501b3551b0197f5b4e952c6b:
Device is Busy
WARN[76368] failed to cleanup ipc mounts:
failed to umount
/var/lib/docker/0.0/containers/d0ce905ea76fd63d544824e21cea7d5a7f8be953501b3551b0197f5b4e952c6b/shm:
invalid argument
failed to umount
/var/lib/docker/0.0/containers/d0ce905ea76fd63d544824e21cea7d5a7f8be953501b3551b0197f5b4e952c6b/mqueue:
invalid argument
ERRO[76368] Error unmounting container
d0ce905ea76fd63d544824e21cea7d5a7f8be953501b3551b0197f5b4e952c6b: not
mounted
ERRO[76368] Handler for POST /v1.22/containers/looper-force/restore
returned error: Cannot restore container looper-force: CMDNOTFOUND


More information about the CRIU mailing list