Skip to content

Boxes from a non-default container manager are invisible, and no box says which manager it uses #243

Description

@kacperpaczos

On a machine with both podman and docker installed, BoxBuddy silently shows only half the picture, and never says which half.

Distrobox picks its container manager by autodetection - podman first, then podman-launcher, then docker, then lilipod (distrobox-list, lines 174-186) - and only DBX_CONTAINER_MANAGER overrides that. BoxBuddy inherits the choice without ever mentioning it: get_container_runtime() in src/utils.rs makes the same guess for its own inspect/stats calls, and every distrobox list goes to whichever manager won the autodetection.

Two consequences on this machine, where both are installed:

  • distrobox list reports seven boxes, all podman's. DBX_CONTAINER_MANAGER=docker distrobox list prints just the header - no boxes. Had I created a box under docker, it would not appear in BoxBuddy at all, with nothing to suggest anything was missing.
  • Nothing in the interface says a box is a podman container rather than a docker one, even though that decides where its storage lives, which podman/docker command acts on it, and whether it is rootless.

What I would like:

  1. Say which manager each box belongs to. A line on the box's page, next to the other facts about it. Only worth showing when more than one manager is installed - on a podman-only machine it would be noise.
  2. List boxes from every installed manager, tagged by manager, so a box created under the non-default one stops being invisible. Cheap enough: one distrobox list per installed manager, and only when there is more than one.
  3. Choose the manager when creating a box - DBX_CONTAINER_MANAGER=<manager> on that one invocation. This is the only "change it" that is actually possible.

On changing an existing box's manager: as far as I can tell it cannot be done, and I would rather the interface say so than offer a switch that quietly does nothing. A container lives in the storage of the manager that created it; there is no distrobox command to move one, and doing it by hand means exporting the image, importing it into the other manager and recreating the container - which is a different box with the same contents, not the same box moved. If that is wanted later, the honest shape is the one Clone Box already has: make a copy under the other manager and leave the original alone until the copy is known to work.

Happy to implement 1-3 if you agree with the split.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions