Podman: Difference between revisions

From NixOS Wiki
imported>JohnAZoidberg
No edit summary
imported>Fumesover
Removing `virtualisation.containers.users` since its deprecated
Line 9: Line 9:
{
{
   virtualisation = {
   virtualisation = {
    # To map subuid and subguid for your user and allow rootless containers
    containers.users = [ "yourusername" ];
     podman = {
     podman = {
       enable = true;
       enable = true;

Revision as of 17:09, 17 August 2020

Podman can run rootless containers and be a drop-in replacement for Docker.

Install and configure podman with NixOS service configuration (NixOS unstable)

Since PR 85604 using Podman is super simple:

{ pkgs, ... }:
{
  virtualisation = {
    podman = {
      enable = true;

      # Create a `docker` alias for podman, to use it as a drop-in replacement
      dockerCompat = true;
    };
  };
}


Old manual configuration (NixOS <=20.03)

{ pkgs, ... }:
{
  environment.systemPackages = with pkgs; [ podman runc conmon slirp4netns fuse-overlayfs ];
}

Configure subuid/subgid for your user

{
  users.users.username.subUidRanges = [{ startUid = 100000; count = 65536; }];
  users.users.username.subGidRanges = [{ startGid = 100000; count = 65536; }];
}

Create configuration files

{
  environment.etc."containers/policy.json" = {
    mode="0644";
    text=''
      {
        "default": [
          {
            "type": "insecureAcceptAnything"
          }
        ],
        "transports":
          {
            "docker-daemon":
              {
                "": [{"type":"insecureAcceptAnything"}]
              }
          }
      }
    '';
  };

  environment.etc."containers/registries.conf" = {
    mode="0644";
    text=''
      [registries.search]
      registries = ['docker.io', 'quay.io']
    '';
  };
}