crun(1) General Commands Manual crun(1) (NAME) crun - OCI (SYNOPSIS) crun [ ] command [ ] [...] (DESCRIPTION) crun OCI ( ) . (COMMANDS) create . . start . delete . exec . list . mounts add (mounts) . : JSON OCI. . . mounts remove . : JSON OCI. (destination) . . kill init . SIGTERM . ps . run . spec . start . . state . pause (pause) . resume . update . checkpoint (checkpoint) CRIU. restore . (STATE) (root) crun /run/crun . XDG_RUNTIME_DIR $XDG_RUNTIME_DIR/crun . --root . (GLOBAL OPTIONS) --debug . --log=LOG-DESTINATION crun. init ( crun ) (stderr) . BACKEND:SPECIFIER . : o file:PATH o journald:IDENTIFIER o syslog:IDENTIFIER file: . --log-format=FORMAT . text json . text . --log-level=LEVEL . debug warning error . error . --root=DIR crun. --systemd-cgroup systemd cgroup. cgroup cgroupfs . --cgroup-manager=MANAGER cgroup . cgroupfs systemd disabled. -?, --help . --usage . -V, --version . (CREATE OPTIONS) crun [global options] create [options] CONTAINER --bundle=PATH OCI . --config=FILE . config.json . --console-socket=SOCKET ptmx (tty) . --no-new-keyring (session key). --no-pivot chroot(2) pivot_root(2) . . --preserve-fds=N (FD) . --pid-file=PATH (PID) . (RUN OPTIONS) crun [global options] run [options] CONTAINER --bundle=BUNDLE OCI . --config=FILE . config.json . --console-socket=SOCKET ptmx (tty) . --no-new-keyring . --no-pivot chroot(2) pivot_root(2) . . --preserve-fds=N . --pid-file=PATH (PID) . --detach . (DELETE OPTIONS) crun [global options] delete [options] CONTAINER --force . --regex CONTAINER . (EXEC OPTIONS) crun [global options] exec [options] CONTAINER CMD --apparmor=PROFILE apparmor . --console-socket=SOCKET ptmx . --cwd=PATH PATH. --cap=CAP (capability) . --detach . --cgroup=PATH cgroup cgroup . cgroup . --env=ENV . --no-new-privs (no new privileges) . --preserve-fds=N . --process=FILE JSON . --process-label=VALUE asm selinux . --pid-file=PATH (PID) . -t --tty (pseudo TTY). -u USERSPEC --user=USERSPEC UID[:GID]. (LIST OPTIONS) crun [global options] list [options] -q --quiet . (KILL OPTIONS) crun [global options] kill [options] CONTAINER SIGNAL --all . --regex CONTAINER . (PS OPTIONS) crun [global options] ps [options] --format=FORMAT . table json . table . (SPEC OPTIONS) crun [global options] spec [options] -b DIR --bundle=DIR ( "."). --rootless config.json . (UPDATE OPTIONS) crun [global options] update [options] CONTAINER --blkio-weight=VALUE cgroup. --cpu-period=VALUE CPU CFS (hardcapping). --cpu-quota=VALUE CPU CFS. --cpu-rt-period=VALUE CPU . --cpu-rt-runtime=VALUE CPU. --cpu-share=VALUE CPU (shares). --cpuset-cpus=VALUE . --cpuset-mems=VALUE . --kernel-memory=VALUE . --kernel-memory-tcp=VALUE TCP. --memory=VALUE . --memory-reservation=VALUE (soft_limit). --memory-swap=VALUE . --pids-limit=VALUE (PID) . -r, --resources=FILE . (CHECKPOINT OPTIONS) crun [global options] checkpoint [options] CONTAINER --image-path=DIR CRIU. --work-path=DIR . --leave-running . --tcp-established TCP. --ext-unix-sk . --shell-job (shell jobs). --pre-dump . pre-dump . pre-dump ( --pre-dump) . pre-dump . pre-dump --parent-path crun ( CRIU) pre-dump . --parent-path=DIR pre-dump pre-dump crun ( CRIU) pre-dump . --image-path . . --manage-cgroups-mode=MODE cgroup CRIU. soft ignore full strict. soft . (RESTORE OPTIONS) crun [global options] restore [options] CONTAINER -b DIR --bundle=DIR ( "."). --image-path=DIR CRIU. --work-path=DIR . --tcp-established TCP. --ext-unix . --shell-job . --detach . --pid-file=FILE (PID) . --manage-cgroups-mode=MODE cgroup CRIU. soft ignore full strict. soft . --lsm-profile=TYPE:NAME LSM . TYPE apparmor selinux . --lsm-mount-context=VALUE (mount context) LSM . . Pod selinux . OCI (Extensions to OCI) run.oci.mount_context_type=context SELinux. : context () fscontext defcontext rootcontext mount(8) . run.oci.seccomp.receiver=PATH (annotation) run.oci.seccomp.receiver=PATH seccomp . RUN_OCI_SECCOMP_RECEIVER . OCI . . run.oci.seccomp.plugins=PATH run.oci.seccomp.plugins=PLUGIN1[:PLUGIN2]... seccomp . dlopen(3) . ld.so(8) . run.oci.seccomp_fail_unknown_syscall=1 run.oci.seccomp_fail_unknown_syscall seccomp crun . run.oci.seccomp_bpf_data=PATH run.oci.seccomp_bpf_data crun seccomp OCI seccomp(SECCOMP_SET_MODE_FILTER) . base64 . OCI . run.oci.keep_original_groups=1 run.oci.keep_original_groups crun setgroups OCI . run.oci.pidfd_receiver=PATH OCI . pidfd . run.oci.systemd.force_cgroup_v1=/PATH run.oci.systemd.force_cgroup_v1=/PATH crun /PATH cgroup v1 none,name=systemd . systemd cgroup v2 cgroup v2 . : cgroup v1 . rootless . : mkdir /sys/fs/cgroup/systemd mount cgroup -t cgroup /sys/fs/cgroup/systemd -o none,name=systemd,xattr chown -R the_user.the_user /sys/fs/cgroup/systemd run.oci.systemd.subgroup=SUBGROUP cgroup systemd scope cgroup : /sys/fs/cgroup/$PATH/$SUBGROUP cgroup . cgroup v2 container cgroup v1 "" . : /sys/fs/cgroup//system.slice/foo-352700.scope/container run.oci.delegate-cgroup=DELEGATED-CGROUP run.oci.systemd.subgroup . cgroup cgroup cgroup (delegated) . /sys/fs/cgroup/$PATH/$SUBGROUP/$DELEGATED-CGROUP $DELEGATED-CGROUP $PATH/$SUBGROUP . $DELEGATE-CGROUP $PATH/$SUBGROUP $DELEGATE-CGROUP . cgroup cgroup v1 cgroup v2 . run.oci.hooks.stdout=FILE run.oci.hooks.stdout crun . (append) . run.oci.hooks.stderr=FILE run.oci.hooks.stderr crun . . run.oci.handler=HANDLER . . krun wasm . o krun: krun libkrun.so libkrun . o wasm: wasm . wasm . .wasm .wat wasm . wasm crun . org.criu.config=FILE CRIU RPC . crun /etc/criu/crun.conf . crun.conf /etc/criu/runc.conf runc . CRIU 4.2 . CRIU crun . tcp-established tcp-close / TCP log- file= CRIU . tmpcopyup (tmpcopyup mount options) tmpcopyup tmpfs tmpfs tmpfs . copy-symlink (copy-symlink mount options) copy-symlink bind . crun . dest-nofollow bind crun . src-nofollow bind crun . r$FLAG (r$FLAG mount options) r$FLAG $FLAG . : o "rro" o "rrw" o "rsuid" o "rnosuid" o "rdev" o "rnodev" o "rexec" o "rnoexec" o "rsync" o "rasync" o "rdirsync" o "rmand" o "rnomand" o "ratime" o "rnoatime" o "rdiratime" o "rnodiratime" o "rrelatime" o "rnorelatime" o "rstrictatime" o "rnostrictatime" idmap (idmap mount options) idmap (ID mapped) . . idmap . idmap : idmap=uids=0-1-10#10-11-10;gids=0-100-10. (triplet) . . # . /proc/$PID/uid_map /proc/$PID/gid_map . idmap uids gids . . . '@' . . : uids=@1-3-10 : "uidMappings": [ { "containerID": 0, "hostID": 0, "size": 1 }, { "containerID": 1, "hostID": 2, "size": 1000 } ] uids=1-4-10 ( uids=) (hostID - containerID containerID = 1 ) . . . (Automatically create user namespace) . 0 /etc/subuid /etc/subgid 1 . (CGROUP v1) cgroup v1 . (CGROUP v2) : 2 cgroup (realtime) cpu RT cgroup . crun RT . cgroup cgroup v1 crun cgroup v2 . OCI cgroup v2 cgroup v1 . (Memory controller) +------------+--------------------+----------------------+-----------------------+ |OCI (x) | cgroup 2 value (y) | conversion | comment | +------------+--------------------+----------------------+-----------------------+ |limit | memory.max | y = x | | +------------+--------------------+----------------------+-----------------------+ |swap | memory.swap.max | y = x - memory_limit | | | | | | cgroup v1 | | | | | | | | | | | | | | | | | | | | | | | | | | +------------+--------------------+----------------------+-----------------------+ |reservation | memory.low | y = x | | +------------+--------------------+----------------------+-----------------------+ (PIDs controller) +--------+--------------------+------------+---------+ |OCI (x) | cgroup 2 value (y) | conversion | comment | +--------+--------------------+------------+---------+ |limit | pids.max | y = x | | +--------+--------------------+------------+---------+ (CPU controller) +--------+--------------------+------------------+-----------------------+ |OCI (x) | cgroup 2 value (y) | conversion | comment | +--------+--------------------+------------------+-----------------------+ |shares | cpu.weight | y=10^((log2(x)^2 | | | | | + 125 * log2(x)) | [2-262144] | | | | / 612.0 - 7.0 / | [1-10000] | | | | 34.0) | | +--------+--------------------+------------------+-----------------------+ |period | cpu.max | y = x | period quota | | | | | | | | | | | | | | | | +--------+--------------------+------------------+-----------------------+ |quota | cpu.max | y = x | period quota | | | | | | | | | | | | | | | | +--------+--------------------+------------------+-----------------------+ / (blkio controller) +--------------+----------------------+-------------------------+------------------+ |OCI (x) | cgroup 2 value (y) | conversion | comment | +--------------+----------------------+-------------------------+------------------+ |weight | io.bfq.weight | y = x | | +--------------+----------------------+-------------------------+------------------+ |weight_device | io.bfq.weight | y = x | | +--------------+----------------------+-------------------------+------------------+ |weight | io.weight (fallback) | y = 1 + (x-10)*9999/990 | | | | | | | | | | | [10-1000] | | | | | [1-10000] | +--------------+----------------------+-------------------------+------------------+ |weight_device | io.weight (fallback) | y = 1 + (x-10)*9999/990 | | | | | | | | | | | [10-1000] | | | | | [1-10000] | +--------------+----------------------+-------------------------+------------------+ |rbps | io.max | y=x | | +--------------+----------------------+-------------------------+------------------+ |wbps | io.max | y=x | | +--------------+----------------------+-------------------------+------------------+ |riops | io.max | y=x | | +--------------+----------------------+-------------------------+------------------+ |wiops | io.max | y=x | | +--------------+----------------------+-------------------------+------------------+ (cpuset controller) +--------+--------------------+------------+---------+ |OCI (x) | cgroup 2 value (y) | conversion | comment | +--------+--------------------+------------+---------+ |cpus | cpuset.cpus | y = x | | +--------+--------------------+------------+---------+ |mems | cpuset.mems | y = x | | +--------+--------------------+------------+---------+ hugetlb (hugetlb controller) +----------------+--------------------+------------+---------+ |OCI (x) | cgroup 2 value (y) | conversion | comment | +----------------+--------------------+------------+---------+ |.limit_in_bytes | hugetlb..max | y = x | | +----------------+--------------------+------------+---------+ crun(1)