Podman: Difference between revisions
imported>Eoli3n No edit summary |
imported>JohnAZoidberg Add instructions for new Podman module |
||
Line 1: | Line 1: | ||
Podman can run rootless | Podman can run rootless containers and be a drop-in replacement for Docker. | ||
== Install podman == | == Install and configure podman with NixOS service configuration (NixOS unstable) == | ||
<syntaxHighlight lang="nix"> | |||
{ pkgs, ... }: | |||
{ | |||
virtualisation = { | |||
# To map subuid and subguid for your user and allow rootless containers | |||
containers.users = [ "yourusername" ]; | |||
podman = { | |||
enable = true; | |||
# Create a `docker` alias for podman, to use it as a drop-in replacement | |||
dockerCompat = true; | |||
}; | |||
}; | |||
} | |||
</syntaxHighlight> | |||
== Old manual configuration (NixOS <=20.03) == | |||
<syntaxHighlight lang="nix"> | <syntaxHighlight lang="nix"> | ||
Line 10: | Line 30: | ||
</syntaxHighlight> | </syntaxHighlight> | ||
== Configure subuid/subgid for your user == | === Configure subuid/subgid for your user === | ||
<syntaxHighlight lang="nix"> | <syntaxHighlight lang="nix"> | ||
Line 20: | Line 40: | ||
</syntaxHighlight> | </syntaxHighlight> | ||
== Create configuration files == | === Create configuration files === | ||
<syntaxHighlight lang="nix"> | <syntaxHighlight lang="nix"> |
Revision as of 08:38, 11 May 2020
Podman can run rootless containers and be a drop-in replacement for Docker.
Install and configure podman with NixOS service configuration (NixOS unstable)
{ pkgs, ... }:
{
virtualisation = {
# To map subuid and subguid for your user and allow rootless containers
containers.users = [ "yourusername" ];
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']
'';
};
}