
Eu tenho um servidor executando o docker com driver de armazenamento btrfs. Como posso migrá-lo para usar um driver de armazenamento diferente? Eu gostaria de usar overlay2.
Tentei migrar seguindo as instruçõesaqui:
pare a janela de encaixe
renomeie /var/lib/docker para /var/lib/docker.bak
adicione {"storage-driver": "overlay2"} a /etc/docker/daemon.json
copie /var/lib/docker.bak para /var/lib/docker (para "se livrar" de quaisquer instantâneos btrfs)
iniciar janela de encaixe
Mas após esta migração, nenhum contêiner estará mais presente.
Suponho que porque o diretório ainda contém dados em /var/lib/docker/btrfs
, e não em /var/lib/docker/overlay2
(eles têm um "layout" diferente, renomear btrfs para overlay2 não funcionará).
Como faço para migrar de um driver de armazenamento para outro, para que todos os contêineres que estavam iniciando automaticamente ainda estejam presentes e iniciem automaticamente?
Responder1
Os subvolumes normalmente não exigem muito trabalho (em teoria, com base nos documentos do fedora para btrfs) - deveriam ser capazes, rm -r /var/lib/docker/subvolumes/*
mas por algum motivo - dockerescuromagia - isso não funciona.
TLDR: usei o seguinte script que encontreinesta essênciapara remover todos os subvolumes em/var/lib/docker/btrfs/subvolumes
- Eu modifiquei um pouco para incluir
echo "Deleting: $subvolume"
apenas para ter certeza de que não iria queimar todo o meu sistema
! Antes de executar isso, certifique-se de ter montado todos os seus dados importantes em seus contêineres ao seu host, pois o seguinte removerá todas as camadas do contêiner.
for subvolume in /var/lib/docker/btrfs/subvolumes/*; do
echo "Deleting: $subvolume"
# Uncomment the next line after you've verified the list is correct.
# btrfs subvolume delete $subvolume
done