CRIU

3 min read Original article ↗

4.1.jpg

Welcome to CRIU, a project to implement checkpoint/restore functionality for Linux.

Checkpoint/Restore In Userspace, or CRIU (pronounced kree-oo, IPA: /krɪʊ/, Russian: криу), is a Linux software. It can freeze a running container (or an individual application) and checkpoint its state to disk. The data saved can be used to restore the application and run it exactly as it was during the time of the freeze. Using this functionality, application or container live migration, snapshots, remote debugging, and many other things are now possible.

CRIU started as a project of Virtuozzo, and grew with the tremendous help from the community. It is currently used by (integrated into) OpenVZ, LXC/LXD/Incus, Docker, Podman, Kubernetes and other software, and packaged for many Linux distributions.

DFRWS USA 2026

Dfrws.png

27-30 July, 2026, Arlington, Virginia, USA

Forensic Analysis of Container Snapshot Chains for Post-Event Reconstruction

EuroMLSys 2026

Euromlsys.png

27 April, 2026, Edinburgh, United Kingdom

Towards On-the-Fly Snapshot Memory Compression for Low-Latency Elastic Inference Serving Systems

KubeCon EU 2026

Kubecon.png

24-26 March, 2026, Amsterdam, Netherlands

Ctrl-X, Ctrl-V Your Pods: WG Checkpoint Restore in Kubernetes

Optimizing Error Recovery for Cost-Efficient Distributed AI Model Training with Kubernetes

Using

Getting packages for your distribution
Or try manual installation to have CRIU on your system
CLI, RPC and C API
Three ways to start using the C/R functionality. More info about APIs.
Usage scenarios
Ideas how criu can be used (some are crazy indeed)
Category:HOWTO
Collection of real world examples of how to use CRIU. Some are complex, some are not. HOW TO dump a simple loop might be the best one to start with. Also a set of asciinema records for real-life examples.
FAQ & When C/R fails
A sort of troubleshooting guide
What can change after C/R
CRIU cannot (yet) save and restore every single bit of tasks' state. This page describes what bits visible through standard kernel API are such.
What cannot be checkpointed
What an application could do to make CRIU refuse to dump it.
Contacts
Ways to communicate with CRIU community

Under the hood

External links

More external articles...

Misc