Lapwing.Org: Sponson


Sponson is a tool to create and setup systemd-nspawn containers in a Docker-like way, without using Docker.


  • python3 >= 3.5
  • Linux kernel >= 4.2 with overlayfs support
  • Python3 DBUS bindings, provided by dbus-python
  • Python3 gobject bindings, provided by python3-gobject
  • systemd >= 234
  • dnsmasq
  • firewalld
  • ostree
  • lsof

For Fedora 27 Workstation, run dnf install systemd-container ostree lsof

For Fedora 27 Cloud, run dnf install firewalld dnsmasq python3-gobject systemd-container ostree lsof


To be able to connect with containers from the host, /etc/nsswitch.conf requires mymachines in the hosts line, for example

hosts: files dns mymachines


If selinux is installed and enabled, you will need to import a module to allow sponson to setup the firewall when bringing up a container.

sudo semodule -i {path to sponson}/selinux/sponson.pp

If the module does not import, you can build the module using

checkmodule -M -m -o {path to sponson}/selinux/sponson.mod {path to sponson}/selinux/sponson.te

semodule_package -o {path to sponson}/selinux/sponson.pp -m {path to sponson}/selinux/sponson.mod

sudo semodule -i {path to sponson}/selinux/sponson.pp

Fedora 25+ also seems to have faults with machinectl accessing /var/lib/machines, so you might want to also use the provided systemdmachine.pp.


Sponson is Copyright (C) 2015-2018 Sam Black

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see