Pasar Docker de devicemapper a overlay2

Si usas Fedora, seguramente de fábrica vengas utilizando el motor de almacenamiento devicemapper, que supuestamente es de los más estables, pero que en la práctica tiene serios problemas de rendimiento que no parece que vayan a solucionarse de aquí a poco.

Si ya lo configuraste con docker-storage-setup o similar, y ahora quieres cambiar a overlay2, sigue esta guía.

Esta guía está muy inspirada en el artículo Friends Don’t Let Friends Run Docker on Loopback in Production, de muy recomendada lectura.

Es importante: vas a perder todos tus datos de Docker (imágenes, contenedores, volúmenes). Respalda todo antes.

Al meollo

Primero, detén Docker y borra todos los datos de almacenamiento que tenga:

# systemctl stop docker
# rm -Rf /var/lib/docker

Edita /etc/sysconfig/docker-storage para decirle a Docker que quieres usar el motor overlay2 si usas Linux >= 4.0 y Docker >= 1.12. Si no, usa overlay, que no es compatible, pero el día de mañana solo tendrás que volver a borrar todo, cambiar el driver y reiniciar el demonio Docker.

DOCKER_STORAGE_OPTIONS="--storage-driver overlay2 "

Edita /etc/sysconfig/docker para desactivar SELinux en Docker, ya que hasta Linux 4.9 y una versión futura de Docker, no soportará los drivers overlay:

OPTIONS='--selinux-enabled=false [otras opciones]'

Borra todo lo que te creó el antiguo docker-storage-setup (el thin pool LVM y todo ese rollo). Los comandos difieren según lo tuvieras configurado, en mi caso fueron:

# lvm lvremove fedora/docker-pool

Ahora crea un  nuevo volúmen LVM:

# lvm lvcreate --name docker --extents 100%FREE fedora
# mkfs.ext4 /dev/mapper/fedora-docker

Configura tu ordenador para montarlo en /var/lib/docker, añadiendo a /etc/fstab esta línea:

 /dev/mapper/fedora-docker /var/lib/docker auto nosuid,nodev,nofail 0 0

Móntalo y arranca Docker de nuevo:

# mount /dev/mapper/fedora-docker
# systemctl start docker

Comprueba que todo funciona:

$ docker run --rm hello-world

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s