12 KiB
Compatibility
This project does not need a dedicated image. It can use any OCI images from docker-hub, quay.io, or any registry of your choice.
Granted, they may not be as featureful as expected (some of them do not even have
which, mount, less or vi) but that's all doable in the container itself
after bootstrapping it.
The main concern is having basic Linux utilities (mount), basic user management
utilities (usermod, passwd), and sudo correctly set.
Supported container managers
distrobox can run on either podman or docker
It depends either on podman configured in rootless mode
or on docker configured without sudo (follow THIS instructions)
- Minimum podman version: 2.1.0
- Minimum docker version: 18.06.1
Follow the official installation guide here:
- https://podman.io/getting-started/installation
- https://docs.docker.com/engine/install
- https://docs.docker.com/engine/install/linux-postinstall/
Host Distros
Distrobox has been successfully tested on:
| Distro | Version | Notes |
|---|---|---|
| Alpine Linux | 3.14 3.15 |
To setup rootless podman, look HERE |
| Arch Linux | distrobox and distrobox-git are available in AUR (thanks M0Rf30!). To setup rootless podman, look HERE |
|
| CentOS | 8 8 Stream 9 Stream |
distrobox is available in epel repos. (thanks alcir!) |
| Debian | 11 Testing Unstable |
distrobox is available in default repos in unstable (thanks michel-slm!!) |
| EndlessOS | 4.0.0 | |
| Fedora Silverblue/Kinoite | 35 36 Rawhide |
distrobox is available in default repos.(thanks alcir!) |
| Fedora | 35 36 Rawhide |
distrobox is available in default repos.(thanks alcir!) |
| Gentoo | To setup rootless podman, look HERE | |
| Manjaro | To setup rootless podman, look HERE | |
| NixOS | 21.11 | Currently you must have your default shell set to Bash, if it is not, make sure you edit your configuration.nix so that it is. Also make sure to mind your executable paths. Sometimes a container will not have nix paths, and sometimes it will not have its own paths. Distrobox is available in Nixpkg collection (thanks AtilaSaraiva!)< To setup Docker, look HERE To setup Podman, look HERE and HERE |
| OpenSUSE | Leap 15.4 Leap 15.3 Leap 15.2 |
Packages are available here (thanks dfaggioli!). To install on openSUSE Leap 15, Use the following repository links in the zypper addrepo command: 15.4, 15.3, 15.2. Then: zypper refresh && zypper install distrobox. Podman under SUSE Leap, cannot initialize correctly the containers managed by distrobox until this OpenSUSE bug is fixed, or podman loggin is configured properly. |
| OpenSUSE | Tumbleweed MicroOS |
distrobox is available in default repos (thanks dfaggioli!) For Tumbleweed, do: zypper install distrobox. For MicroOS, do: pkcon install distrobox and reboot the system. |
| SUSE Linux Enterprise Server | 15 Service Pack 4 15 Service Pack 3 15 Service Pack 2 |
Same procedure as the one for openSUSE (Leap, respective versions, of course). Use the following repository links in the zypper addrepo command: SLE-15-SP4, SLE-15-SP3, SLE-15-SP4. Then: zypper refresh && zypper install distrobox. Podman under SUSE Leap, cannot initialize correctly the containers managed by distrobox until this OpenSUSE bug is fixed, or podman loggin is configured properly. |
| RedHat | 8 9 |
distrobox is available in epel repos. (thanks alcir!) |
| Ubuntu | 18.04 20.04 21.10 |
Older versions based on 20.04 or earlier may need external repos to install newer Podman and Docker releases. Derivatives like Pop_OS!, Mint and Elementary OS should work the same. Now PPA available!, also distrobox is available in default repos in 22.10 (thanks michel-slm!) |
| Void Linux | glibc | Systemd service export will not work. |
Compatibility notes
If your container is not able to connect to your host xserver, make sure to
install xhost on the host machine and run xhost +si:localuser:$USER.
If you wish to enable this functionality on future reboots add it to your ~/.xinitrc
or somewhere else tailored to your use case where it would be ran on every startup.
Non shared mounts
Note also that in some distributions, root filesystem is not mounted as a shared mount, this will give an error like:
$ distrobox-enter
Error response from daemon: path /sys is mounted on /sys but it is not a shared or slave mount
Error: failed to start containers: ...
To resolve this, use this command:
mount --make-rshared /
To make it permanent, you can place it in /etc/rc.local.
List of distributions including distrobox in their repositories
New Host Distro support
If your distro of choice is not on the list, open an issue requesting support for it, we can work together to check if it is possible to add support for it.
Or just try using it anyway, if it works, open an issue and it will be added to the list!
Containers Distros
Distrobox guests tested successfully with the following container images:
| Distro | Version | Images |
|---|---|---|
| AlmaLinux (UBI) | 8 | quay.io/almalinux/8-base:8 quay.io/almalinux/8-init:8 |
| AlmaLinux | 8 8-minimal 9 9-minimal |
quay.io/almalinux/almalinux:8 quay.io/almalinux/almalinux:9 quay.io/almalinux/almalinux:9-minimal |
| Alpine Linux | 3.15 3.16 |
docker.io/library/alpine:3.15 docker.io/library/alpine:3.16 docker.io/library/alpine:latest |
| AmazonLinux | 1 2 |
public.ecr.aws/amazonlinux/amazonlinux:1 public.ecr.aws/amazonlinux/amazonlinux:2 |
| AmazonLinux | 2022 | public.ecr.aws/amazonlinux/amazonlinux:2022 |
| Archlinux | docker.io/library/archlinux:latest | |
| CentOS Stream | 8 9 |
quay.io/centos/centos:stream8 quay.io/centos/centos:stream9 |
| CentOS | 7 | quay.io/centos/centos:7 |
| ClearLinux | docker.io/library/clearlinux:latest docker.io/library/clearlinux:base |
|
| Crystal Linux | docker.io/crystallinux/crystal:latest | |
| Debian | 7 8 9 10 11 |
docker.io/debian/eol:wheezy docker.io/library/debian:8 docker.io/library/debian:9 docker.io/library/debian:10 docker.io/library/debian:stable docker.io/library/debian:stable-backports |
| Debian | Testing | docker.io/library/debian:testing docker.io/library/debian:testing-backports |
| Debian | Unstable | docker.io/library/debian:unstable |
| Fedora | 35 36 37 Rawhide |
registry.fedoraproject.org/fedora-toolbox:35 quay.io/fedora/fedora:35 quay.io/fedora/fedora:36 registry.fedoraproject.org/fedora:37 quay.io/fedora/fedora:rawhide |
| Gentoo Linux | rolling | You will have to Build your own to have a complete Gentoo docker image |
| Kali Linux | rolling | docker.io/kalilinux/kali-rolling:latest |
| Mageia | 8 | docker.io/library/mageia |
| Neurodebian | nd100 | docker.io/library/neurodebian:nd100 |
| Opensuse | Leap | registry.opensuse.org/opensuse/leap:latest |
| Opensuse | Tumbleweed | registry.opensuse.org/opensuse/tumbleweed:latest registry.opensuse.org/opensuse/toolbox:latest |
| Oracle Linux | 6 6-slim 7 7-slim 8 8-slim 9 9-slim |
container-registry.oracle.com/os/oraclelinux:6 container-registry.oracle.com/os/oraclelinux:6-slim container-registry.oracle.com/os/oraclelinux:7 container-registry.oracle.com/os/oraclelinux:7-slim container-registry.oracle.com/os/oraclelinux:8 container-registry.oracle.com/os/oraclelinux:8-slim container-registry.oracle.com/os/oraclelinux:9 container-registry.oracle.com/os/oraclelinux:9-slim |
| RedHat (UBI) | 7 8 9 |
registry.access.redhat.com/ubi7/ubi registry.access.redhat.com/ubi7/ubi-init registry.access.redhat.com/ubi7/ubi-minimal registry.access.redhat.com/ubi8/ubi registry.access.redhat.com/ubi8/ubi-init registry.access.redhat.com/ubi8/ubi-minimal registry.access.redhat.com/ubi9/ubi registry.access.redhat.com/ubi9/ubi-init registry.access.redhat.com/ubi9/ubi-minimal |
| Rocky Linux | 8 8-minimal |
quay.io/rockylinux/rockylinux:8 quay.io/rockylinux/rockylinux:8-minimal quay.io/rockylinux/rockylinux:latest |
| Scientific Linux | 7 | docker.io/library/sl:7 |
| Slackware | 14.2 | docker.io/vbatts/slackware:14.2 |
| Ubuntu | 14.04 16.04 18.04 20.04 22.04 22.10 |
docker.io/library/ubuntu:14.04 docker.io/library/ubuntu:16.04 docker.io/library/ubuntu:18.04 docker.io/library/ubuntu:20.04 docker.io/library/ubuntu:22.04 docker.io/library/ubuntu:22.10 |
| Void Linux | ghcr.io/void-linux/void-linux:latest-full-x86_64 ghcr.io/void-linux/void-linux:latest-full-x86_64-musl |
Note however that if you use a non-toolbox preconfigured image (e.g.
images pre-baked to work with https://github.com/containers/toolbox),
the first distrobox-enter you'll perform
can take a while as it will download and install the missing dependencies.
A small time tax to pay for the ability to use any type of image. This will not occur after the first time, subsequent enters will be much faster.
NixOS is not a supported container distro, and there are currently no plans to bring support to it. If you are looking for unprivlaged NixOS environments, we suggest you look into nix-shell.
New Distro support
If your distro of choice is not on the list, open an issue requesting support for it, we can work together to check if it is possible to add support for it.
Or just try using it anyway, if it works, open an issue and it will be added to the list!
Older distributions
For older distributions like CentOS 5, CentOS 6, Debian 6, Ubuntu 12.04, compatibility is not assured.
Their libc version is incompatible with kernel releases after >=4.11.
A work around this is to use the vsyscall=emulate flag in the bootloader of the
host.
Keep also in mind that mirrors could be down for such old releases, so you will need to build a custom distrobox image to ensure basic dependencies are met.