Distrobox: easily integrate containers with the host
Distrobox is a wrapper for docker and podman to create containers that are tightly integrated with the host: share the home directory, run graphical applications, external USB devices and more.
Table of Contents
- Requirements and installation
- Running graphical apps
- Compatible container images
Requirements and installation
Distrobox uses Podman (in rootless mode) or Docker (without sudo) to manage the containers. Ensure Podman or Docker can run without superuser privileges.
Distrobox is available on most distros (check https://github.com/89luca89/distrobox#installation). Use your system package manager to install
Most Distrobox commands have two ‘versions’ (that work the same): one with
distrobox and the command as argument, and other with
distrobox, a hyphen and the command name, all without spaces:
distrobox create distrobox-create
Create a container
To create a container, run
distrobox create -i <image>, for example:
distrobox create -i debian
- You can name the container with
- The container is not started after creation.
- Remember to use
-ito specify the image name, this is different from Docker and Podman syntax.
Enter the container
To start (if it’s not already) and enter the container, run
distrobox enter <container name>. The first time you run this command on a new container, this will configure the container to use the same username and
$HOME folder as the host. This process also installs some Distrobox utilities. After initialization, you will be able to run commands inside the container.
Stop a container
Distroboxes keep running even when you exited them, so to stop a running container, execute:
distrobox stop <container name>
To start and enter into a stopped container, just use the
distrobox enter <container name> command.
Remove a container
distrobox rm <container name>
Upgrade a container
This is an interesting command: you can upgrade the container packages from the host. Distrobox will perform the upgrade using the container package manager.
distrobox upgrade <container name>
-a: perform on all containers.
Running graphical apps
First, you need to grant your user access to the X screen, so the container can access to it without special privileges. To do this, run the following command on the host (as an ordinary user):
xhostis not installed, install
x11-xserver-utilson Debian/Ubuntu or
xorg-xhoston Arch Linux.
Then, you can enter on your container and install a graphical application, like Abiword, and run it.
Note: to set
xhost to the default setting again (access control enabled), just run
Export container apps to host
You can also access container apps directly from your host. Run this inside the container:
distrobox-export --app <app name>
- Ensure to type
distrobox-export --app abiword
This will create a ‘.desktop’ file on your host, with a shortcut to:
distrobox enter <container name> -- <app name>
You will see the new item in your Programs Menu. The name of the menu item will be similar to this: ‘app-name (on container-name)’.
To ‘unexport’ an app (remove the shortcut), run the following command on the container:
distrobox-export --delete --app <app name>
Compatible container images
Check https://github.com/89luca89/distrobox/blob/main/docs/compatibility.md#containers-distros for a list of compatible Distrobox guests.
If you have any suggestion, feel free to contact me via social media or email.
Latest tutorials and articles: