{ ... }: { imports = [ ../profiles/docker-container.nix # FIXME, shouldn't include something from profiles/ ]; boot.postBootCommands = '' # Set virtualisation to docker echo "docker" > /run/systemd/container ''; # Iptables do not work in Docker. networking.firewall.enable = false; # Socket activated ssh presents problem in Docker. services.openssh.startWhenNeeded = false; } # Example usage: # ## default.nix # let # nixos = import { # configuration = ./configuration.nix; # system = "x86_64-linux"; # }; # in # nixos.config.system.build.tarball # ## configuration.nix # { pkgs, config, lib, ... }: # { # imports = [ # # # ]; # # documentation.doc.enable = false; # # environment.systemPackages = with pkgs; [ # bashInteractive # cacert # nix # ]; # } # ## Run # Build the tarball: # $ nix-build default.nix # Load into docker: # $ docker import result/tarball/nixos-system-*.tar.xz nixos-docker # Boots into systemd # $ docker run --privileged -it nixos-docker /init # Log into the container # $ docker exec -it /run/current-system/sw/bin/bash