Atualização do Docker remove driver de armazenamento AUFS, causando problemas no Discourse

Eu executo uma instalação do fórum Discourse no Ubuntu 20.04.6 LTS. A imagem Docker usa AUFS para armazenamento.

Hoje, instalei atualizações via sudo apt upgrade. Agora o fórum Discourse não está mais acessível, e parece ser porque uma atualização do Docker removeu o driver de armazenamento AUFS.

Vejo muitos guias para configurar o Docker para usar Overlay2 em vez disso, mas não vejo nenhuma orientação sobre como migrar minha instalação Discourse existente para usar Overlay2, especialmente agora que não consigo iniciar o Docker para montar meus volumes AUFS.

Quando executo

sudo dockerd --debug

A saída é

INFO[2024-05-15T19:49:04.327570182-04:00] Starting up
DEBU[2024-05-15T19:49:04.332295421-04:00] Listener created for HTTP on unix (/var/run/docker.sock)
WARN[2024-05-15T19:49:04.340758649-04:00] failed to rename /var/lib/docker/tmp for background deletion: rename /var/lib/docker/tmp /var/lib/docker/tmp-old: file exists. Deleting synchronously
DEBU[2024-05-15T19:49:04.427688615-04:00] Golang's threads limit set to 13680
DEBU[2024-05-15T19:49:04.430903802-04:00] metrics API listening on /var/run/docker/metrics.sock
DEBU[2024-05-15T19:49:04.554881397-04:00] Using default logging driver json-file
DEBU[2024-05-15T19:49:04.555543790-04:00] No quota support for local volumes in /var/lib/docker/volumes: Filesystem does not support, or has not enabled quotas
DEBU[2024-05-15T19:49:04.563660483-04:00] processing event stream                       module=libcontainerd namespace=plugins.moby
DEBU[2024-05-15T19:49:04.567109514-04:00] Error while looking up volume                 driver=local error="volume not found" volume=
DEBU[2024-05-15T19:49:04.567813165-04:00] Error while looking up volume                 driver=local error="volume not found" volume=
INFO[2024-05-15T19:49:04.574217050-04:00] [graphdriver] trying configured driver: aufs
DEBU[2024-05-15T19:49:04.574500003-04:00] daemon configured with a 15 seconds minimum shutdown timeout
DEBU[2024-05-15T19:49:04.574603992-04:00] start clean shutdown of all containers with a 15 seconds timeout...
DEBU[2024-05-15T19:49:04.578694693-04:00] Cleaning up old mountid : start.
DEBU[2024-05-15T19:49:04.579329989-04:00] Cleaning up old mountid : done.
failed to start daemon: error initializing graphdriver: [graphdriver] ERROR: the aufs storage-driver has been deprecated and removed; visit https://docs.docker.com/go/storage-driver/ for more information: aufs

Como posso restaurar meu fórum Discourse sem perder nenhum dado? Posso de alguma forma restaurar o driver de armazenamento AUFS e depois migrar para o driver de armazenamento Overlay2?

Você não perderá dados, eles estão em /var/discourse/shared.

Se o docker funcionar, basta reconstruir e você ficará bem.

Infelizmente, o Docker parou de funcionar após a atualização. Você pode ver o erro na última linha da saída que forneci.

Consigo fazer o Docker iniciar se eu alterar o conteúdo de /etc/docker/daemon.json de

 {
     "storage-driver": "aufs"
 }

para

 {
     "storage-driver": "overlay2"
 }

No entanto, meu fórum Discourse ainda não funciona após fazer essa alteração.

Você está dizendo que funcionará e manterá os usuários, postagens e o restante da configuração e dados históricos se eu executar o seguinte e reiniciar o Docker?

cd /var/discourse
git pull
./launcher rebuild app

A reconstrução do Discourse dessa maneira migrará todos os dados do fórum para o armazenamento Overlay2?

Eu espero que isso funcione. Não consigo imaginar uma maneira de você perder dados.

1 curtida

Você estava certo, aparentemente. Depois de alterar o driver de armazenamento em /etc/docker/daemon.json para overlay2 e executar ./launcher rebuild app, o fórum parece ter voltado a funcionar.

Agora me pergunto se devo tentar a sorte e fazer um upgrade de versão do Ubuntu para 22.04.3 LTS. :slight_smile:

Eu esperaria um pouco mais e criaria uma nova imagem 24.04 e migrar para ela em vez de fazer um upgrade, ou simplesmente mudaria para 22.04 agora. Eu não confio em quanta coisa não é atualizada em um upgrade. Além disso, você evita o tempo de inatividade e, se algo der errado, seu servidor antigo ainda estará funcionando.

Mover um site Discourse para outro VPS com rsync

2 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.