Desinstalar o Docker Desktop no Mac sem perder volumes
O Docker Desktop não é um app só. É uma interface, uma máquina virtual em segundo plano, um conjunto de
ferramentas de linha de comando ligadas em /usr/local/bin e uma imagem de disco que cresce
em silêncio até dezenas de gigabytes. Arrastá-lo para o Lixo remove a primeira dessas partes e deixa
o resto.
Ele também tem o problema inverso da maioria das desinstalações: rodar o desinstalador oficial é o passo destrutivo, não a limpeza depois. Esta é a ordem que preserva os seus dados, e como distinguir as sobras descartáveis das que você vai querer de volta.
Desinstalar destrói contêineres, imagens e volumes
A documentação de desinstalação do Docker diz isso com clareza: desinstalar o Docker Desktop destrói contêineres, imagens, volumes e outros dados do Docker locais nesta máquina. Não há como desfazer e não há etapa no Lixo.
A maior parte disso pode ser recriada. Imagens baixam de novo, contêineres se reconstroem a partir de um Dockerfile. A exceção são os volumes nomeados, que é onde um banco de dados local guarda os dados. Um contêiner Postgres ou MySQL contra o qual você desenvolve há meses guarda as linhas num volume, não na imagem, e esse volume é apagado junto com todo o resto.
Antes de qualquer outra coisa, liste o que existe:
docker volume ls
Se um volume importa, faça o backup antes de desinstalar, não depois. Pare os processos que escrevem nele antes de criar um arquivo no nível dos arquivos; para um banco de dados, use o método de backup que ele suporta ou desligue-o de forma limpa primeiro. Um arquivo compactado de arquivos que ainda estão sendo modificados pode ficar inconsistente:
docker run --rm -v <volume>:/from -v "$PWD":/to alpine \
tar czf /to/<volume>.tgz -C /from .
O mesmo vale para qualquer coisa que você construiu e nunca enviou. docker image ls mostra o que
está local; se não estiver num registro, existe só neste Mac.
Se o motivo é espaço, você talvez não precise desinstalar
O Docker guarda tudo dentro de uma imagem grande de disco virtual, e esse arquivo costuma ser
a maior coisa que o Docker possui. Fazer prune dentro do Docker muitas vezes recupera o que você
veio buscar e deixa a ferramenta instalada, mas o prune não é reversível.
Comece com docker system df para ver a divisão, e depois leia
Limpar o Docker no Mac sem perder dados, que
cobre o prune e o motivo pelo qual o arquivo de disco não encolhe sozinho.
Se você está aqui para remover o Docker de vez, continue.
Use o desinstalador do próprio Docker
O desinstalador documentado do Docker faz mais do que apagar o bundle. Ele encerra os serviços em segundo plano e remove os links simbólicos de linha de comando que um arrasto no Finder deixa para trás.
Pelo app: abra o Docker Desktop, selecione o ícone Troubleshoot no canto superior direito, escolha Uninstall e confirme. Pelo Terminal:
/Applications/Docker.app/Contents/MacOS/uninstall
Depois mova o Docker de Aplicativos para o Lixo.
O Docker documenta um erro específico operation not permitted para a pasta protegida do contêiner do app:
nesse caso a desinstalação pode terminar enquanto a pasta permanece. Isso não
significa que todo erro de permissão seja inofensivo. Confira o caminho exato e o resultado da desinstalação;
o Terminal precisa de Acesso Total ao Disco para acessar essa pasta protegida.
O que sobra, e de quem é
Depois que o desinstalador roda, algumas pastas sobrevivem. O Docker nomeia duas:
~/Library/Group Containers/group.com.docker
~/.docker
Não são o mesmo tipo de coisa, e a diferença é o ponto inteiro.
~/.docker é a sua configuração. Guarda contextos, ajustes do daemon e credenciais
de registro do docker login. Se você for reinstalar o Docker depois, ou mudar para
Colima, Rancher Desktop ou OrbStack, esta é a pasta que talvez queira guardar. Apagá-la
significa entrar de novo em cada registro.
~/Library/Containers/com.docker.docker é a pasta de contêiner do app. Ela guarda a
máquina virtual e a imagem de disco, Docker.raw, então é aqui que estão as dezenas de gigabytes,
e é a pasta protegida do caso operation not permitted acima.
~/Library/Group Containers/group.com.docker guarda os ajustes do Docker Desktop, não a
imagem de disco. Depois que você aceitar que os contêineres e os volumes se foram, estas duas
são as partes que vale a pena remover.
Além dessas duas, o Docker deixa o rastro usual do macOS: caches, logs, preferências e
estado salvo do aplicativo na sua Library. Isso é descartável. O ponto não é
apagar todo arquivo com docker no nome, e sim saber qual deles é um cache e
qual é uma credencial.
Confirme que realmente sumiu
Duas verificações. Primeiro, que nada continua em execução:
pgrep -fl -i docker
Segundo, que as ferramentas de linha de comando estão desvinculadas:
which docker docker-compose
As duas não devem devolver nada. Se docker ainda resolver, você provavelmente tem uma cópia
do CLI pelo Homebrew instalada à parte, que é outro pacote e sobrevive ao desinstalador do Docker
Desktop de propósito. brew list | grep docker diz qual.
O jeito mais rápido de ver tudo de uma vez
O caminho manual funciona, mas pede que você já saiba quais caminhos existem e qual deles é o seu dado. Essa é a parte que os guias costumam pular, e é a parte que custa algo quando dá errado.
O Mole lista os arquivos relacionados que identifica antes de remover qualquer coisa, agrupados para você ver o que uma pasta realmente é, com o tamanho ao lado. Você revisa o conjunto, desmarca o que quer guardar, e o que você remove vai para o Lixo em vez de desaparecer. No Docker em específico, a imagem de disco costuma responder por quase todo o espaço recuperado, e ver esse número antes de confirmar é a diferença entre uma limpeza e uma surpresa.
O que volta depois de uma reinstalação
Imagens podem ser baixadas de novo se ainda existirem num registro, e contêineres podem ser recriados se você guardou a configuração de build e de execução. Imagens só locais, alterações dentro de um contêiner e dados de volume nomeado não voltam sozinhos. Faça backup de tudo que você não consegue reproduzir antes de desinstalar.
~/.docker contém a configuração do cliente e os contextos, e pode apontar para credenciais guardadas
em outro lugar, como as Chaves. Faça backup dos ajustes de que precisa antes de removê-la. Guardar a
pasta não garante que todo login sobreviva; apagá-la pode perder mais do que uma sessão de login.
A imagem de disco virtual é recriada vazia. Ela volta a crescer conforme você baixa imagens
de novo, então as dezenas de gigabytes que uma desinstalação recupera são em grande parte temporárias se você
reinstalar e retomar o uso normal. Manter esse número baixo no longo prazo é para o que
docker system prune serve, não um ciclo de reinstalar.
O que o Mole lista para este app, e o que ele deixa em paz, está em Desinstalar o Docker Desktop no Mac.