explaingit

89luca89/distrobox

12,405ShellAudience · ops devopsComplexity · 2/5LicenseSetup · easy

TLDR

A command-line tool that lets you run any Linux distribution inside your existing Linux system using containers, with full integration for your home directory, USB devices, graphical apps, and audio, no dual booting or reinstalling needed.

Mindmap

mindmap
  root((Distrobox))
    What it does
      Run any Linux distro
      Tight host integration
      Export apps to host
    Container Backends
      Podman
      Docker
      Lilipod
    Features
      GUI app support
      Home dir shared
      USB and audio
    Audience
      Linux power users
      Developers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Run software only available on Arch Linux from inside your Fedora or Ubuntu host without reinstalling anything

USE CASE 2

Export a graphical app from a container so it appears in your desktop application launcher

USE CASE 3

Try a new Linux distribution or test different package versions without touching your main system

USE CASE 4

Set up a Distrobox container on the Steam Deck to install tools not in SteamOS's repos

Tech stack

ShellDockerPodman

Getting it running

Difficulty · easy Time to first run · 30min

Requires podman, docker, or lilipod already installed on the host, a single distrobox-create command sets up the container.

GPLv2, free to use and modify, but any changes you distribute must also be released under the same GPLv2 license.

In plain English

Distrobox is a tool that lets you run any Linux distribution inside a terminal on your existing Linux system. It uses container technology (podman, docker, or lilipod) to create an environment running a different Linux distribution of your choice, and then integrates that environment tightly with your host system. The practical result is that you can use software from Debian, Ubuntu, Fedora, Arch, or dozens of other Linux distributions without switching operating systems or dual booting. Your home directory, external storage devices, USB peripherals, graphical applications (including Wayland and X11 windows), and audio all work inside the container as if you were on that distribution natively. This makes Distrobox useful when software you need is only available on a specific distribution, or when you want to try newer or older package versions without modifying your main system. Setting up a container is done with a single distrobox-create command specifying which Linux image you want. You enter it with distrobox-enter. From inside the container you can install packages using that distribution's package manager, run graphical applications, and export those applications or shell scripts back to the host so they appear in your application launcher. You can also run commands on the host system from inside the container using distrobox-host-exec. Distrobox supports a wide range of container images and has been tested on many host distributions, including the Steam Deck. The project is licensed under GPLv2, has documentation at distrobox.it, and maintains a Matrix room and Telegram group for community support. Configuration files let you define containers declaratively so a whole environment can be reproduced with one command.

Copy-paste prompts

Prompt 1
Create a Distrobox container running Arch Linux on my Ubuntu machine and install a package that is not available in Ubuntu's repos
Prompt 2
Export a GUI application from a Distrobox container so it shows up in my desktop app launcher, walk me through the commands
Prompt 3
How do I use a declarative config file in Distrobox to define my whole container setup and recreate it with one command?
Prompt 4
Run a command on my host system from inside a Distrobox container using distrobox-host-exec, show me a real example
Prompt 5
Set up a Distrobox container on the Steam Deck to install Linux gaming tools not available in SteamOS
Open on GitHub → Explain another repo

← 89luca89 on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.