Managing a running system.
NixOS's init system is systemd. A "unit" is some resource
systemd manages: a daemon (service), a device, a mount point, etc.
Each unit has a configuration file to tell systemd what to do with
the resource and its dependencies. systemctl is the basic tool you
use to introspect and control your box. For example
$ systemctl # status of active units
$ systemctl --failed # list failed units
$ systemctl status unit # detailed status and logs of unit
Besides the status command above, other common commands to control
units are: start, stop, restart, enable, disable. For example
you could
$ sudo systemctl restart some.service
There are common power management commands too such as suspend,
hibernate, reboot, and poweroff:
$ sudo systemctl suspend
$ sudo systemctl reboot
Other basic tools that come with systemd are
loginctlfor user sessions.systemd-cglsfor control groups.journalctlfor the logs.
Read more about systemd on the Arch wiki.
NixOS comes with light-weight OS virtualization that lets you run another NixOS instance at native speed inside a container. The NixOS manual has a guide to container creation and management.