Using systemd containers
Another feature that systemd supports is systemd-nspawn
. This service provides container capabilities in systemd and allows systemd to manage these containers. It uses the same primitives as the LXC project and Docker. SELinux-wise, the software that is running inside the container will not have a correct view on the SELinux state (as is the case with Docker).
However, unlike Docker and libvirt, the systemd-nspawn
approach does not support the sVirt technology that we covered in the previous chapter. In other words, it will not dynamically reset the SELinux contexts of the used files, nor will it search for a free category pair to associate with the files and the processes.
Initializing a systemd container
To create a systemd container, first create a root file system in which the software that the container should run is deployed. It is advised to use the /var/lib/machines
location, with a subdirectory per container, as this location will be the default location for...