Docker 热迁移探索,基于CRIU实现运行状态迁移
版本限制 Docker: 17.06.0-ce criu: 3.12 kernal: 3.10.0-957.el7.x86_64 || 5.10.2-1.el7.elrepo.x86_64 (Optional) os: CentOS Linux release 7.9.2009 (Core) (Optional) 实测在该环境下,容器热迁移可用,热迁移成功与否与 docker 和 criu 版本强相关。 环境部署 # Docker 安装 $ sudo yum install -y yum-utils $ sudo yum-config-manager
版本限制
- Docker:
17.06.0-ce
- criu:
3.12
- kernal:
3.10.0-957.el7.x86_64
||5.10.2-1.el7.elrepo.x86_64
(Optional) - os:
CentOS Linux release 7.9.2009 (Core)
(Optional)
实测在该环境下,容器热迁移可用,热迁移成功与否与
docker
和criu
版本强相关。
环境部署
1 |
|
热迁移示例
1 |
|
以上步骤将容器 looper2
的状态迁移到 looper-clone
,可实现当前容器、跨容器的状态迁移,甚至可以实现跨主机的迁移,只需将该目录 /var/lib/docker/{docker id}/checnkpoints/
下面与检查点同名的文件夹迁移即可。
附件
附件一:C测试程序
1 |
|
参考文献
- docker集成criu实现热迁移功能的使用方法:http://luqitao.github.io/2019/01/24/Docker_and_criu_migrate_containers/#创建checkpoint-1
- Download and install:https://golang.google.cn/doc/install
- CentOS Docker 安装:https://www.runoob.com/docker/centos-docker-install.html
- centos 7 安装golang1.13.5:https://www.cnblogs.com/nickchou/p/10934025.html
- <C语言>打印(输)出系统时间—–time相关函数:https://blog.csdn.net/WU9797/article/details/76922323
- docker 内部文件没有权限的解决方法_xcagy - 国际性的文档记录中心 - CSDN 博客:https://blog.csdn.net/ccagy/article/details/85859256
- CRIU和Pod在线迁移:https://blog.gmem.cc/live-migration-of-pods
- centos7升级内核至最新:https://www.cnblogs.com/ding2016/p/10429640.html
- Install Docker Engine on CentOS:https://docs.docker.com/engine/install/centos/
Docker 热迁移探索,基于CRIU实现运行状态迁移
https://www.frytea.com/post/20201223215729.html