启用docker experimental后,我试图通过docker checkpoint命令将运行容器移动到另一台主机。首先,我尝试使用以下命令创建检查点:
docker checkpoint create 52922ace26fa cp
但它失败并出现以下错误:
Error response from daemon: Cannot checkpoint container 52922ace26fa: rpc error: code = 2 desc = exit status 1: "Unable to execute CRIU command: criu\n"
我在ubuntu和centos都尝试过, 这是docker版本:
Version: 17.05.0-ce
API version: 1.29 (minimum version 1.12)
Go version: go1.7.5
Git commit: 89658be
Built: Thu May 4 22:06:25 2017
OS/Arch: linux/amd64
Experimental: true
这有什么解决方案或解决方法吗? 由于它是实验性功能,有没有办法在运行时移动容器?
答案 0 :(得分:0)
CRIU是此功能的外部依赖项,没有它就无法工作。执行以下命令并安装
sudo add-apt-repository ppa:criu/ppa
sudo apt-get update
sudo apt-get install -y criu
安装完成后再尝试检查点
有关详细信息,请参阅
https://github.com/moby/moby/blob/v1.13.0-rc4/experimental/checkpoint-restore.md
答案 1 :(得分:0)
似乎CRIU未正确安装在您的系统中。你可以验证吗?
否则,您可以安装(命令):
sudo apt-get install criu
也可以从源代码构建CRIU。 CRIU是用C语言编写的,因此安装标准gcc
和make
包以便能够创建二进制文件。克隆CRIU github repos:
https://github.com/checkpoint-restore/criu
此处给出了关于如何构建的进一步说明(CRIU的官方页面)