测试的环境及步骤如下:
[root ~]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.9.2009 (Core)
Release: 7.9.2009
Codename: Core
[root ~]# uname -a
Linux agent6 5.3.18-3-xvp #1 SMP XVP 5.3.18-3 (Sat, 18 Apr 2020 19:18:14 +0800) x86_64 x86_64 x86_64 GNU/Linux
[root ~]# docker version
Client: Docker Engine - Community
Version: 19.03.9
API version: 1.40
Go version: go1.13.10
Git commit: 9d988398e7
Built: Fri May 15 00:25:27 2020
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.8
API version: 1.40 (minimum version 1.12)
Go version: go1.12.17
Git commit: afacb8b
Built: Wed Mar 11 01:25:42 2020
OS/Arch: linux/amd64
Experimental: true
containerd:
Version: 1.2.13
GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683
[root ~]# criu -V
Version: 3.15
GitID: v3.14-333-gd49ace9
[root ~]# criu check
Looks good.
[root ~]# criu check --all
Warn (criu/cr-check.c:1230): clone3() with set_tid not supported
Error (criu/cr-check.c:1272): Time namespaces are not supported
Looks good but some kernel features are missing
which, depending on your process tree, may cause
dump or restore failure.
[root ~]# cat /etc/docker/daemon.json
{
"insecure-registry":["192.168.10.17:443"],
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] ,
"experimental": true
}
[root ~]# docker run -d --name track --security-opt seccomp:unconfined busybox /bin/sh -c 'i=0; while true; do echo $i; i=$(expr "$i" + 1); sleep 1; done'
12fe0d9dfcacd222543a9f7ca838560a1277a748b00496442d0c55aa319d05a0
[root ~]# docker checkpoint create track checkpoint-track
Error response from daemon: Cannot checkpoint container track: runc did not terminate sucessfully: criu failed: type NOTIFY errno 0 path= /run/containerd/io.containerd.runtime.v1.linux/moby/12fe0d9dfcacd222543a9f7ca838560a1277a748b00496442d0c55aa319d05a0/criu-dump.log: unknown
其中,criu check --all的时候有一个错误,但是在我的另一台电脑上(3.10内核)也出现了这个错误,但是并没有影响后面的checkpoint。请诸位大佬指教一下,在这个bug卡了好久了。
部署容器的例子是参考的CRIU官方的例子:https://criu.org/Docker