How does Fedora Toolbox work?

Does somebody know a presentation or a video which explains hoe Fedora Toolbox works?
It’s just a container that mounts my directories?

Pretty much, toolbox is a shell script wrapper over podman. It creates a container from a custom image and mounts relevant directories as volumes / sets the proper environment variables.


I always thought that containers were read-only but I think that’s just my mistake?

And applications inside a container can only be accessed within the container?
When I had a problem with my printer, someone suggested to my to install the driver in Fedora Toolbox. But that would only make the printer work within the container, doesn’t it?

Thanks so far!

Can I ask what your role in Fedora Silverblue is? You are a developer at Red Hat?

Nope. You can configure them how you want too. Toolbox is just a fedora image with /home being our real home, plus a few other directories.

Generally, yes. GUI apps are forwarded to the host though.

Yeh. If you need to, try and overlay the driver.


There is a lot of subtlety here.

An application inside a container can only be accessed within the container, however it is possible to run an application in a container from the host:

$ toolbox run [--container CONTAINER_NAME] command

or if you prefer to use podman:

$ podman exec --interactive CONTAINER_NAME command

And if you want to do some crazy things, It is also possible to invoke a command on the host system from the container:

$ flatpak-spawn --host command

Combining the two allows a container to execute a command from another container:

$ flatpak-spawn --host podman exec --interactive CONTAINER_NAME COMMAND

Top tip! Definitely saving this for a rainy day.

Thanks Pluto!

Eventually I installed the driver as a layered package (you helped me with that too)!

1 Like

Thanks for the clarification!

Great, my general rule of thumb is if it’s a driver (nvidia, exfat, printer) layer it for now.

Really helpful discussion - I have several GUI apps that I can only install in a toolbox. With the run option on toolbox and a .desktop file they are now much more integrated with my desktop. Thanks.

1 Like

it seems that for GUI applications only the second command works:
podman exec --interactive gui "/opt/XOD IDE/xod-client-electron"
toolbox run --container gui "/opt/XOD IDE/xod-client-electron"

Such behavior is expected because toolbox run passes to podman exec several environment variables (eg. DISPLAY, WAYLAND_DISPLAY, …).

1 Like