Este método de virtualização é mais leve que o feito com recurso máquinas virtuais e continua a permitir aplicações isoladas com diferentes versões das mesmas dependências, sistemas de ficheiros limitados, permissões de rede e recursos diferentes, por contentor. Assim, tornam-se ideais para desenvolvimento, dado que são portáteis, simples de gerir e podem ser rapidamente criados/terminados. Os contentores foram popularizados pelo Docker, uma ferramenta que, inicialmente, era baseada em Linux Containers (lxc), que fornecem uma camada de abstração sobre os contentores.
O que são contentores?
Esta ferramenta segue os padrões da Open Container Initiative (OCI), um projeto que integrou normas e especificações para as ferramentas de contentores seguirem – nas especificações, encontram-se as imagens e runtimes de contentores. As imagens de contentores são arquivos que integram tudo que é necessário para a execução de um programa.
Os runtimes de contentores gerem a criação/execução de ambientes de contentores e são responsáveis por criar/iniciar/terminar os contentores, alocar recursos e isolar processos/rede/arquivos entre o sistema hospedeiro e o contentor. Em alternativa ao Docker, existem outras ferramentas que seguem as especificações da OCI, muitas vezes com um interface de terminal semelhante ao Docker, como o Podman e o rkt, entre outras.
Capacidades do Distrobox
Idealizando as tecnologias anteriores, surge o Distrobox, como uma ferramenta que nos oferece uma interface simples para criar um ambiente de outras distribuições de Linux. Pode correr por cima do Docker e do Podman, entre outras, desde que estejam instaladas no sistema. Esta ferramenta permite criar ambientes de Linux usando imagens OCI com o sistema desejado e personalizar esse ambiente para as necessidades do utilizador. Esta ferramenta é uma boa solução para instalação de aplicações em distribuições imutáveis como o SteamOS3 (do SteamDeck); criar um ambiente privilegiado em sistemas sem SUDO (por razões de segurança ou em computadores de terceiros); e instalar aplicações (de terminal ou gráficas) apenas disponíveis para outras distribuições/versões.
Guia de instalação
A maioria das distribuições tem o Distrobox nos seus repositórios: ao ser instalado, instala também as dependências do Podman ou do Docker. Caso a versão do repositório não seja a desejada, ou a distribuição não a tenha nos repositórios, há um tutorial de instalação no distrobox.it.
Criar um contentor Distrobox
O processo para criar um contentor é feito pelo comando ‘distrobox create’, que trata de criar o contentor com o nome e imagem OCI desejada. O contentor criado será integrado com o sistema operativo hospedeiro, permitindo a partilha do diretório da ‘HOME’ do utilizador, do armazenamento externo, dispositivos USB, áudio e aplicações gráficas. O comando ‘distrobox create –help’ mostra as opções adicionais que o contentor pode ter. Como exemplo, criámos dois contentores:
O meu sistema hospedeiro é o Fedora – aqui, usei o Distrobox para criar um contentor com Ubuntu 24.04 e outro com Arch Linux. Em ambos, tive de indicar qual a imagem a ser usada, sendo que é possível ver uma lista de imagens compatíveis ao correr o comando ‘distrobox create –compatibility’ (no entanto, é possível usar outras). O nome do contentor serve como identificador, neste caso ‘ubuntu24’ e ‘archlinux’. O hostname é o nome usado como identificador do contentor na rede: foram escolhidos ‘ubuntu24’ e ‘ArchPC’. A ‘HOME’ dos contentores foi alterada para o diretório ‘~/PCGuia’ para não colidir com ficheiros do hospedeiro nem encher o disco com ficheiros temporários. No caso do Arch Linux, foram ainda adicionados dois pacotes à imagem-base com o parâmetro +’additional-packages’. Após criados os contentores, pode-se verificar que estão ligados fazendo ‘distrobox ls’ e ‘podman ps’ (ou ‘docker ps’).
Entrar e usufruir do contentor Distrobox
Para entrar no contento,r apenas é necessário usar o comando ‘distrobox enter <Nome do Contentor>’.
Agora, dentro do contentor, temos um novo ambiente Linux que podemos usar como se fosse o do hospedeiro, com os seus ficheiros, embora com um sistema operativo diferente. Neste caso, usámos os contentores para instalar duas aplicações que indisponíveis no repositório do Fedora: Gedit e Hypnotix. No primeiro caso, recorremos ao APT para instalar o Gedit e executámo-los através do Terminal.
Para instalar e executar o Hypnotix em Arch Linux, usámos um repositório de utilizadores de Arch (aur). Ao seguir apenas estes passos para instalar uma aplicação, faz com que esta não esteja facilmente acessível no sistema hospedeiro. Para isso, existe o comando no contentor ‘distrobox-export –app <Nome da aplicação>’ (este comando não existe no hospedeiro), que permite exportar aplicações para o hospedeiro de maneira a que fiquem acessíveis através do menu de aplicações
Sair, desligar e apagar contentores
Quando já tivermos realizado todas as acções no contentor, podemos sair, fazendo apenas ‘logout’, o que nos faz voltar ao terminal do hospedeiro – no entanto, o contentor continua ligado. Para desligar, usa-se o comando ‘distrobox stop <Nome do Contentor>’: assim, o contentor e todas as aplicações abertas são desligadas. Caso o contentor não tenha qualquer tipo de uso, pode-se sempre apagá-lo com o comando ‘distrobox rm <Nome do Contentor>’.
Conclusão
O Distrobox é uma ferramenta muito útil para quem precisa de instalar aplicações de outros sistemas operativos ou com algum confinamento, em relação ao sistema hospedeiro. Esta ferramenta ainda consegue fazer muito mais e recomendo a consulta da documentação oficial em distrobox.it.