Skip to content

Latest commit

 

History

History
166 lines (125 loc) · 12.1 KB

compatibility.md

File metadata and controls

166 lines (125 loc) · 12.1 KB

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:

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
Manjaro To setup rootless podman, look HERE
CentOS 8
8 Stream
9 Stream
distrobox is available in epel repos. (thanks alcir!)
RedHat 8
9beta
distrobox is available in epel repos. (thanks alcir!)
Debian 11
Testing
Unstable
Fedora 34
35
36
distrobox is available in default repos.(thanks alcir!)
Fedora Silverblue/Kinoite 34
35
36
distrobox is available in default repos.(thanks alcir!)
Gentoo To setup rootless podman, look HERE
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.
Please follow their installation guide: Podman Docker
Derivatives like Pop_OS!, Mint and Elementary OS should work the same.
Now PPA available! (thanks michel-slm!
EndlessOS 4.0.0
openSUSE Tumbleweed
MicroOS
distrobox is available in default repos (thanks dfaggioli!)
For Tumbleweed, do: zypper install distrobox.
For MicroOS enter in a transactional update shell like this: tukit --continue execute /bin/bash (or transactional-update shell --continue, if you have transactional-update installed). Once inside: zypper install distrobox. Then exit the shell (CTRL+D is fine) and reboot the system.
openSUSE Leap 15.4
Leap 15.3
Leap 15.2
Packages are available here (thanks dfaggioli!)
To install on openSUSE Leap 15.4, do:
zypper addrepo https://download.opensuse.org/repositories/home:dfaggioli:microos-desktop/15.4/home:dfaggioli:microos-desktop.repo && zypper refresh && zypper install distrobox.
For earlier versions, the procedure is the same, the link to the repository (i.e., the last argument of the zypper addrepo command) is the only thing that changes: Leap 15.3, Leap 15.2.
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.
Void Linux glibc Systemd service export will not work.
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
Windows WSL2 NOTE WSL2 support is preliminary, and there are many bugs present, any help in improving support is appreciated
Currently you must work around some incompatibility between WSL2 and Podman, namely THIS.
Install into WSL2 any of the supported distributions in this list.
Ensure you have an entry in the fstab for the /tmp folder:
echo 'tmpfs /tmp tmps defaults 0 0' >> /etc/fstab.
Then reboot the WSL machine wsl --shutdown
Note that distrobox export is not supported on WSL2 and 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

Packaging status

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 8 docker.io/library/almalinux:8
AlmaLinux (UBI) 8 docker.io/almalinux/8-base
docker.io/almalinux/8-init
Alpine Linux 3.14
3.15
docker.io/library/alpine:latest
AmazonLinux 2 docker.io/library/amazonlinux:2.0.20211005.0
AmazonLinux 2022 public.ecr.aws/amazonlinux/amazonlinux:2022
Archlinux docker.io/library/archlinux:latest
ClearLinux docker.io/library/clearlinux:latest
docker.io/library/clearlinux:base
CentOS 7 quay.io/centos/centos:7
CentOS Stream 8
9
quay.io/centos/centos:stream8
quay.io/centos/centos:stream9
RedHat (UBI) 7
8
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
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
Neurodebian nd100 docker.io/library/neurodebian:nd100
Fedora 34
35
36
37
Rawhide
registry.fedoraproject.org/fedora-toolbox:34
docker.io/library/fedora:34
registry.fedoraproject.org/fedora-toolbox:35
docker.io/library/fedora:35
docker.io/library/fedora:36
registry.fedoraproject.org/fedora:37
docker.io/library/fedora:rawhide
Mageia 8 docker.io/library/mageia
Opensuse Leap registry.opensuse.org/opensuse/leap:latest
Opensuse Tumbleweed registry.opensuse.org/opensuse/tumbleweed:latest
registry.opensuse.org/opensuse/toolbox:latest
Oracle Linux 7
8
container-registry.oracle.com/os/oraclelinux:7
container-registry.oracle.com/os/oraclelinux:8
Rocky Linux 8 docker.io/rockylinux/rockylinux:8
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
21.10
22.04
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:21.10
docker.io/library/ubuntu:22.04
Kali Linux rolling docker.io/kalilinux/kali-rolling:latest
Void Linux ghcr.io/void-linux/void-linux:latest-full-x86_64
ghcr.io/void-linux/void-linux:latest-full-x86_64-musl
Gentoo Linux rolling You will have to Build your own to have a complete Gentoo docker image

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.