Distrobox: Difference between revisions
Added a fix to a problem I encountered with NixOS on Orbstack. I'm not sure how common it is, but it took a bit to debug. |
m Fixup |
||
Line 49: | Line 49: | ||
Error: copying system image from manifest list: writing blob: adding layer with blob ...: | Error: copying system image from manifest list: writing blob: adding layer with blob ...: | ||
unpacking failed (error: exit status 1; | unpacking failed (error: exit status 1; | ||
output: potentially insufficient UIDs or GIDs available in user namespace (requested 1000:1000 for /home/ | output: potentially insufficient UIDs or GIDs available in user namespace (requested 1000:1000 for /home/container): Check /etc/subuid and /etc/subgid if configured locally and run "podman system migrate": lchown /home/container: invalid argument) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 01:32, 7 January 2025
Distrobox offers you to use any linux distribution inside your terminal as a simple wrapper for Podman, Docker or Lilipod.
Setup
Distrobox uses Docker internally to fetch and run system images. Easily get started by enabling Podman with Docker-compatibility mode.
virtualisation.podman = {
enable = true;
dockerCompat = true;
};
environment.systemPackages = [ pkgs.distrobox ];
Usage
Setup container with latest Arch Linux image
# distrobox create --name archlinux --init --image archlinux:latest
Enter Arch Linux container
# distrobox enter archlinux
For further usage, please refer to the Distrobox documentation.
Tips and tricks
Using different architecture
Following example will run an Ubuntu container with a different architecture than the host, in this case arm64.
Add following line to your system configuration, apply it and then reboot the system.
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
Run a Debian container with arm64 architecture
sudo podman run --rm --privileged multiarch/qemu-user-static --reset -p yes
distrobox create -n debian --image arm64v8/debian
distrobox enter debian
"potentially insufficient UIDs and GUIDs" error
When setting up containers that do not run as root, you may see an error along the following lines: (this example uses podman, lilipod has a different error)
# distrobox create container
...
Error: copying system image from manifest list: writing blob: adding layer with blob ...:
unpacking failed (error: exit status 1;
output: potentially insufficient UIDs or GIDs available in user namespace (requested 1000:1000 for /home/container): Check /etc/subuid and /etc/subgid if configured locally and run "podman system migrate": lchown /home/container: invalid argument)
adding the following to your config might help:
users.users.ilyagr = {
extraGroups = [ "podman" ];
subGidRanges = [
{
count = 65536;
startGid = 1000;
}
];
subUidRanges = [
{
count = 65536;
startUid = 1000;
}
];
};
Rebuild your system, run podman system migrate
, and try creating the distrobox container again.