Este guia descreve como configurar o Docker no Manjaro Linux para armazenar seus dados (imagens, contêineres, volumes) em um diretório dentro da sua pasta /home. Esta abordagem é particularmente útil se sua partição raiz (/) está em BTRFS e você usa Timeshift para snapshots, enquanto sua partição /home está em um sistema de arquivos diferente (como ext4) e não é incluída nesses snapshots. Mover os dados do Docker para /home evita que os snapshots do Timeshift se tornem excessivamente grandes e lentos.
Pré-requisitos:
- Docker instalado no Manjaro.
- Sua partição
/homeestá formatada em ext4 (ou outro sistema de arquivos não BTRFS que você não inclui nos snapshots da raiz).
Atenção: Substitua SEU_USUARIO pelo seu nome de usuário real nos comandos abaixo.
-
Pare o serviço Docker: Se o Docker estiver em execução, é crucial pará-lo antes de fazer qualquer alteração no diretório de dados.
sudo systemctl stop docker sudo systemctl stop docker.socket
-
Crie o novo diretório de dados do Docker na sua
/home: Este será o novo local para todos os dados do Docker.mkdir -p /home/SEU_USUARIO/docker-data
-
Mova os dados existentes do Docker (se houver): Se você já utilizou o Docker anteriormente, a pasta
/var/lib/dockerpode conter dados importantes (imagens, volumes). Usersyncpara movê-los para o novo local. Se for uma instalação nova do Docker e/var/lib/dockernão existir ou estiver vazio, você pode pular o comandorsynce a remoção subsequente.sudo rsync -aqxPS /var/lib/docker/ /home/SEU_USUARIO/docker-data/
Após confirmar que a cópia foi bem-sucedida e que o Docker funciona corretamente com o novo local (após completar todos os passos), você pode considerar remover o diretório antigo para liberar espaço. Execute este comando com cautela:
sudo rm -rf /var/lib/docker
Se
/var/lib/dockerpor acaso era um subvolume BTRFS (por exemplo, de uma tentativa anterior de configuração diferente), você o removeria com:sudo btrfs subvolume delete /var/lib/docker
-
Configure o Docker para usar o novo diretório de dados: Você precisa informar ao daemon do Docker onde encontrar seus dados. Isso é feito editando (ou criando) o arquivo
/etc/docker/daemon.json.Primeiro, crie o diretório
/etc/dockerse ele não existir:sudo mkdir -p /etc/docker
Agora, crie ou edite o arquivo
daemon.jsonusando um editor de texto como onano:sudo nano /etc/docker/daemon.json
Adicione o seguinte conteúdo ao arquivo. Se o arquivo já existir e tiver outro conteúdo JSON, adicione/modifique cuidadosamente as chaves
"data-root"e"storage-driver":{ "data-root": "/home/SEU_USUARIO/docker-data", "storage-driver": "overlay2" }Lembre-se de substituir
SEU_USUARIOpelo seu nome de usuário real. Salve e feche o arquivo. -
Adicione seu usuário ao grupo
docker(recomendado): Para executar comandos Docker sem precisar usarsudotodas as vezes, adicione seu usuário ao grupodocker.sudo usermod -aG docker $USERImportante: Você precisará fazer logout completo da sua sessão de usuário e fazer login novamente para que esta alteração de grupo tenha efeito.
-
Recarregue a configuração do systemd, reinicie e habilite o Docker: Esses comandos aplicam as alterações e garantem que o Docker inicie na próxima inicialização do sistema.
sudo systemctl daemon-reload sudo systemctl restart docker sudo systemctl enable docker
Após reiniciar o Docker e ter feito logout e login novamente (para que a alteração de grupo do usuário tenha efeito):
-
Verifique as configurações do Docker: Execute este comando sem
sudose o passo de logout/login foi realizado corretamente.docker info
Na saída, procure por estas linhas para confirmar a configuração:
Docker Root Dir: /home/SEU_USUARIO/docker-data Storage Driver: overlay2 -
Execute um contêiner de teste para garantir que tudo está funcionando:
docker run hello-world
Se bem-sucedido, esta imagem será baixada e executada, exibindo uma mensagem de boas-vindas.
Com esses passos, o Docker estará configurado para usar o diretório especificado na sua pasta /home, e sua configuração do Timeshift para a partição raiz BTRFS não será afetada pelos dados do Docker.