<section xmlns="http://docbook.org/ns/docbook"
         version="5.0"
         xml:id="sec-installing-nspawn-container">
 <title>Installing into a nspawn container</title>

 <para>
  For installing a NixOS into a systemd nspawn container the NixOS installation tools are needed.
  If you run another distribution than NixOS on your host,
  please follow <xref linkend="sec-installing-from-other-distro"/> steps 1, 2, and 3.
 </para>

 <para>
  Create a NixOS configuration file <filename>/var/lib/machines/my-container/etc/nixos/configuration.nix</filename>.
  It is important that the container root file system is under <filename>/var/lib/machines</filename>.
  This is the standard location where <command>machinectl</command> will look for containers.
  If you choose place the root into another location you need to start the container directly with <command>systemd-nspawn</command>.
  The file needs to have at least following options enabled:
<programlisting>
<xref linkend="opt-boot.isContainer"/> = true;
<xref linkend="opt-boot.loader.initScript.enable"/> = true;
</programlisting>
  If your host uses <command>systemd-networkd</command> to configure the network,
  you can also enable <xref linkend="opt-networking.useNetworkd"/> to use networkd default network configuration for your host and container.
 </para>

 <para>
  Install the container by running following command:
   <screen>nixos-install --root /var/lib/machines/my-container \
     --no-channel-copy --no-root-passwd --no-bootloader</screen>
 </para>

 <para>
  Start the container by running following command:
  <screen>machinectl start my-container</screen>
 </para>

</section>
