Difference between revisions of "Runc"
Jump to navigation
Jump to search
m |
|||
| Line 3: | Line 3: | ||
== Container Checkpoint/Restore == | == Container Checkpoint/Restore == | ||
| − | < | + | <pre> |
| + | # Create a container rootfs | ||
mkdir -p alpine-container/rootfs && cd alpine-container | mkdir -p alpine-container/rootfs && cd alpine-container | ||
wget https://dl-cdn.alpinelinux.org/alpine/latest-stable/releases/x86_64/alpine-minirootfs-3.22.2-x86_64.tar.gz | wget https://dl-cdn.alpinelinux.org/alpine/latest-stable/releases/x86_64/alpine-minirootfs-3.22.2-x86_64.tar.gz | ||
tar -xzf alpine-minirootfs-3.22.2-x86_64.tar.gz -C rootfs | tar -xzf alpine-minirootfs-3.22.2-x86_64.tar.gz -C rootfs | ||
rm -f alpine-minirootfs-3.22.2-x86_64.tar.gz | rm -f alpine-minirootfs-3.22.2-x86_64.tar.gz | ||
| + | |||
| + | # Create container spec file | ||
runc spec | runc spec | ||
| + | |||
| + | # Set looper command | ||
sed -i 's/"sh"/\"sh -c '\''i=0; while true; do echo $i; i=$(expr $i + 1); sleep 1; done'\'\"'/' config.json | sed -i 's/"sh"/\"sh -c '\''i=0; while true; do echo $i; i=$(expr $i + 1); sleep 1; done'\'\"'/' config.json | ||
| + | |||
| + | # Disable interactive terminal | ||
sed -i 's/"terminal": true/"terminal": false/g' config.json | sed -i 's/"terminal": true/"terminal": false/g' config.json | ||
| + | |||
| + | # Run container in the background | ||
sudo runc run -d looper 0</dev/null 1>/dev/null 2>/dev/null | sudo runc run -d looper 0</dev/null 1>/dev/null 2>/dev/null | ||
| − | </ | + | </pre> |
Revision as of 18:29, 9 October 2025
This article provides an overview of CRIU integration with runc and explains how to use it.
Container Checkpoint/Restore
# Create a container rootfs mkdir -p alpine-container/rootfs && cd alpine-container wget https://dl-cdn.alpinelinux.org/alpine/latest-stable/releases/x86_64/alpine-minirootfs-3.22.2-x86_64.tar.gz tar -xzf alpine-minirootfs-3.22.2-x86_64.tar.gz -C rootfs rm -f alpine-minirootfs-3.22.2-x86_64.tar.gz # Create container spec file runc spec # Set looper command sed -i 's/"sh"/\"sh -c '\''i=0; while true; do echo $i; i=$(expr $i + 1); sleep 1; done'\'\"'/' config.json # Disable interactive terminal sed -i 's/"terminal": true/"terminal": false/g' config.json # Run container in the background sudo runc run -d looper 0</dev/null 1>/dev/null 2>/dev/null