
Tengo un servidor que ejecuta Docker con el controlador de almacenamiento btrfs. ¿Cómo puedo migrarlo para usar un controlador de almacenamiento diferente? Me gustaría usar overlay2.
Intenté migrar siguiendo las instrucciones.aquí:
detener la ventana acoplable
cambie el nombre de /var/lib/docker a /var/lib/docker.bak
agregue {"storage-driver": "overlay2"} a /etc/docker/daemon.json
copie /var/lib/docker.bak a /var/lib/docker (para "deshacerse" de cualquier instantánea de btrfs)
iniciar ventana acoplable
Pero después de esta migración, ya no hay contenedores.
Supongo que porque el directorio todavía tiene datos en /var/lib/docker/btrfs
y no en /var/lib/docker/overlay2
(tienen un "diseño" diferente, cambiar el nombre de btrfs a overlay2 no es suficiente).
¿Cómo migro de un controlador de almacenamiento a otro, de modo que los contenedores que se iniciaban automáticamente sigan presentes y se inicien automáticamente?
Respuesta1
Los subvolúmenes normalmente no requieren mucho trabajo (en teoría, según los documentos de Fedora para btrfs); deberían poder hacerlo, rm -r /var/lib/docker/subvolumes/*
pero por alguna razón: ventana acoplableoscuromagia: esto no funciona.
TLDR: utilicé el siguiente script que encontréen esta esenciapara eliminar todos los subvolúmenes en/var/lib/docker/btrfs/subvolumes
- Lo modifiqué ligeramente para incluir
echo "Deleting: $subvolume"
solo para asegurarme de no quemar todo mi sistema.
! Antes de ejecutar esto, asegúrese de haber montado todos sus datos importantes en sus contenedores en su host porque lo siguiente eliminará todas las capas del contenedor.
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