doos

User-level containers in C++20: overlayfs over the host's /usr, /etc, /opt, user/mount/pid namespaces, networking through slirp4netns. No root at runtime.

doos list
doos get_or_create [--net slirp|host|none] NAME
doos attach [--net slirp|host|none] NAME [-- CMD...]
doos delete [--yes] NAME

Build: cmake -S . -B build && cmake --build build. Test: tests/run.sh.

Requirements: Linux >= 5.11, slirp4netns for the default network mode. On Ubuntu 24.04+ install the AppArmor profile once:

sudo cp apparmor/doos /etc/apparmor.d/doos && sudo apparmor_parser -r /etc/apparmor.d/doos

See SPEC.md (behavior, limits) and docs/RESEARCH.md (what works, measurements, known gaps).

S
Description
User-level containers in C++20: overlayfs, user namespaces, slirp4netns/pasta networking, cgroup v2 limits, seccomp hardening. No root at runtime.
Readme MIT
228 KiB
Languages
C++ 72.4%
Shell 24.5%
Makefile 2.7%
CMake 0.4%