Changes

300 bytes added ,  9 October
m
no edit summary
Line 3: Line 3:  
== Container Checkpoint/Restore ==
 
== Container Checkpoint/Restore ==
    +
Create a container rootfs
 
<pre>
 
<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
 +
</pre>
   −
# Create container spec file
+
Create a container specification file:
 +
 
 +
<pre>
 
runc spec
 
runc spec
 +
</pre>
 +
 +
Set a command to run in the container:
   −
# Set looper command
+
<pre>
 
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
 +
</pre>
 +
 +
Start the container and redirect the output/error to <code>looper.out</code> and <code>looper.out</code>:
 +
 +
<pre>
 +
sudo runc run looper 0</dev/null 1>looper.out 2>looper.err &
 +
</pre>
   −
# Disable interactive terminal
+
Alternatively, you can disable the interactive terminal and run container in the background as follows:
 +
 
 +
<pre>
 
sed -i 's/"terminal": true/"terminal": false/g' config.json
 
sed -i 's/"terminal": true/"terminal": false/g' config.json
 +
sudo runc run -d looper 0</dev/null 1>/dev/null 2>/dev/null
 +
</pre>
   −
# Run container in the background
+
Show running containers
sudo runc run -d looper 0</dev/null 1>/dev/null 2>/dev/null
     −
# Show running containers
+
<pre>
 
sudo runc list
 
sudo runc list
 
sudo runc state looper
 
sudo runc state looper
509

edits