
Distrobox es un programa encargado de establecer un contenedor dentro de un sistema operativo e interactuar sus aplicaciones allí. Debido a las medidas adoptadas para evitar comprometer el sistema operativo, como ocurrió con la inmutabilidad de Deepin, este paso es positivo para convertirlo en un subsistema. Ofrece soporte para Debian, Arch y otras distribuciones.
Distrobox suele depender de Podman (o Docker), ya que su propósito es permitir que los sistemas operativos sean almacenados en contenedores. En el caso de que el sistema operativo no sea inmutable, se pueden instalar ambos paquetes.
Distrobox te será de utilidad para trabajar con software que exige muchas bibliotecas, como los servidores web. Podrás emular un servidor casero para sincronizar datos con otros dispositivos en una misma red en pocos pasos y sin complicaciones. Algunos ejemplos son CasaOS y Homarr. Sin embargo, en nuestra experiencia, no recomendamos crear contenedores directamente (utiliza Podman en su lugar), ya que no es posible personalizar los puertos con facilidad.
Cómo funciona
Distrobox trabaja de la misma forma con Podman y Docker. La diferencia es su sencillez. Existen clientes gráficos como BoxBuddy o Distroshelf (via Flatpak) que faciliten mayoría de las operaciones de la terminal. Aún así, siempre es bueno conocer su funcionamiento creando y trabajando un contenedor en la siguiente parte del artículo.
Cómo crear un contenedor
Distribox se ejecuta por defecto desde la terminal. Como primer paso deberás ejecutar la orden para crear uno y llamar un nombre, como este:
distrobox create -n micontenedor
En el caso de que necesites de un controlador Nvidia compatible, ejecútalo con:
distrobox create -n micontenedor --nvidia
Además, puedes especificar la imagen de disco:
distrobox create -n micontenedor --image ubuntu:latest
Ten en cuenta que las imágenes suelen presentarse de dos formas: en bruto, que son más completas, pero tardan más en cargar, o en edición Toolbox, que son más rápidas y ligeras.
Si te animas, incluso puedes conceder que el contenedor ejecute con los servicios del sistema. Esta experiencia permitirá se asemeja a un programa Flatpak, si necesidad de serlo y sin tener que modificar el sistema. Debido a que se interactúa con componentes críticos, resulta útil para programas que requieran servicios del sistema, como Warp. Sin embargo, en aplicaciones básicas, no se recomienda usar esta opción.
distrobox create -n micontenedor --init
La imagen del contenedor se obtendrá de Docker. No es necesario intervenir durante su creación.
Acceder un contenedor
Para acceder a uno de los contenedores basta con:
distrobox enter micontenedor
Asegura de escribir el nombre el contenedor correctamente para empezar a usar. Para la primera vez que se accede, deberás esperar que se instalen todos los paquetes para que funcionen correctamente. Si deseas salir del contenedor, escribe exit y pulsa enter.
Trabajar con un contenedor
Añadir al lanzador
Como detalle adicional, puedes crear un acceso directo de un programa al lanzador con el comando:
distrobox-export --app miapp
En el lanzador, aparecerá el nombre de la aplicación con su respectivo origen. Ten en cuenta que, si desinstalas el paquete, el acceso directo seguirá allí. Para eliminar el enlace, deberás ejecutar el mismo comando con el sufijo -d:
distrobox-export --app miapp -d
Puedes revisar más detalles sobre el comando en Github.
Conocer la lista de contenedores
Para conocer qué contenedores están funcionando, consulta:
distrobox-list
Instalar un paquete desde home
Al menos que lo indiques explícitamente, el contenedor trabaja con la carpeta /home. Si hay algún paquete suelto, puedes instalar desde la carpeta de documentos con ayuda del comando cd para abrir subcarpetas (por ejemplo, descargas).

Recomendamos que, en el momento de la instalación, se visualice el nombre del contenedor para evitar dañar los componentes internos de Deepin. Así, si la terminal muestra que hay paquetes rotos, estos podrán solucionarse lo antes posible.
Hay que tener en cuenta que los contenedores de Distrobox funcionan con sus propios repositorios para instalar paquetes o actualizarlos. Los repositorios son guardados en el archivo sources.list.
Parámetros para usar privilegios
Puedes añadir parámetros adicionales al crear el conenedor como --init para acondicionar los servicios del sistema (útil para la instalación de Warp) y--root para ejecutar con privilegios de administrador por defecto y saltar las limitaciones de seguridad (útil para programas que requieran de QEMU, que está solo disponible en el sistema operativo mediante el servicio libvirt y no en el contenedor).
Si se utiliza el modo root del contenedor, se permite que los programas que requieran acceder a la partición del sistema o a los componentes de hipervisión se ejecuten sin problemas. Un ejemplo es GNS3 y su servidor integrado que depende de QEMU, los cuales no operarían correctamente en un contenedor sin prilegios. La desventaja es que cada vez que accedas, necesitarás de la contraseña por motivos de seguridad.
Ten en cuenta que el comando visualmente cambiará a:
[usuario]@[pc]:/run/host/home/[usuario]$
Como extra, en el caso que deseas exportar la aplicación en un contenedor sin privilegios pero exiges que cuente con el comando sudo, puedes hacerlo allí:
distrobox-export --app mi-app --sudo
También puedes exportar un ejecutable, por ejemplo:
distrobox-export -b /bin/warp-svc --sudo
Usar desde un archivo Assemble
Distrobox permite instalar archivos mediante un archivo Assemble (que termina en .ini). Aplicaciones como BoxBuddy facilitan este proceso. Para más información, puedes ver la documentación oficial. El comando de referencia es:
distrobox assemble create --file /miruta/archivo.ini
Cómo instalar Distrobox
Este programa viene integrado en Deepin 25. Previamente, se encontraba disponible en los repositorios de Deepin. El paquete solía empezar en org.deepin.distrobox (su código fuente está en Github). Puedes consultar más detalles en su sitio web para conocer su funcionamiento.
Puedes revisar la documentación oficial. Además, puedes revisar otros detalles en MuyLinux y el blog de Deepin para conocer más en profundidad su importancia. También puedes consultar el artículo de KDE explicando la relación entre Distrobox y Podman.
Antes de utilizar Distrobox, comprueba si el usuario y la lista de identificadores aparecen en los archivos subuid y subgid. Puedes comprobarlo en la carpeta de configuración (/etc) y asegurarte de que coincida con la cuenta de usuario normal que se creó al instalar el sistema operativo (por ejemplo user:524288:65536). Recuerda que si vas a modificar los archivos de configuración, deberás actualizar el comando podman system migrate y reiniciar el sistema operativo.
Si el sistema no registra correctamente la lista de usuarios, es posible que se produzcan errores, como la incapacidad para reconocer «host-spawn» o problemas para acceder a la cuenta de root. Incluso es posible que el sistema no instale correctamente el contenedor. Por tanto, es preferible borrar toda la carpeta del contenedor de Podman una vez que Distrobox funcione correctamente y crear o importar los contenedores de nuevo, para evitar problemas futuros.
Cómo respaldar contenedores de Distrobox
Se puede guardar el contenedor de la siguiente manera:
Vía Podman:
podman container commit -p distrobox_name image_name_you_choose
podman save image_name_you_choose:latest | bzip2 > image_name_you_choose.tar.bz
Vía Docker:
docker container commit -p distrobox_name image_name_you_choose
docker save image_name_you_choose:latest | gzip > image_name_you_choose.tar.gz
Para restaurar, que el contenedor en cuestión no exista. Primero carga la imagen desde el el archivo comprimido.
Vía Podman:
podman load < image_name_you_choose.tar.bz2
Vía Docker:
docker load < image_name_you_choose.tar.gz
Luego de cargar la imagen, procedemos con crear el contenedor.
distrobox create --image image_name_you_choose:latest --name distrobox_name
distrobox enter --name distrobox_name
Fuente: Foro de Universal Blue
Distrobox - Wiki de Deepin en Español
Distrobox es un programa encargado de establecer un contenedor dentro de un sistema operativo. Recomendado para Deepin.
Sistema operativo: Deepin 20, 23, 25

