Cookies en Outbook

Esta web utiliza cookies propias para ofrecer una mejor experiencia. Al navegar, aceptas dichas cookies.
  • Más información acerca de las cookies

Outbook

UI-Dev & more

Docker Desktop y Ubuntu Noble 24.04: problemas con Apparmor

Desde la llegada de Ubuntu 24.04 LTS (Noble Numbat), muchos usuarios se han encontrado con que Docker Desktop deja de funcionar correctamente. El problema más común es que, tras la instalación, el programa se queda en el mensaje “Waiting for Docker Engine to start” y nunca llega a iniciarse.

¿Por qué ocurre este fallo?

La causa principal está relacionada con AppArmor, el sistema de control de seguridad que Ubuntu utiliza para restringir lo que puede hacer cada proceso.

En Ubuntu 24.04 se ha introducido una nueva configuración que restringe los user namespaces no privilegiados. Docker Desktop depende de esos namespaces para ejecutar la máquina virtual que gestiona los contenedores. Cuando AppArmor bloquea este comportamiento, Docker no consigue arrancar.

Soluciones temporales

Opción 1: Desactivar la restricción de user namespaces

Podemos cambiar el parámetro del kernel en caliente:

$ sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
$ systemctl --user restart docker-desktop

Esto permite que Docker arranque, aunque el cambio se pierde al reiniciar.

Para hacerlo permanente, se puede añadir el ajuste en /etc/sysctl.d/99-docker-desktop.conf:

echo "kernel.apparmor_restrict_unprivileged_userns=0" | sudo tee /etc/sysctl.d/99-docker-desktop.conf
sudo sysctl --system

Opción 2: Crear un perfil de AppArmor para Docker Desktop

Otra opción más limpia es añadir un perfil específico que autorice el binario de Docker Desktop:

sudo nano /etc/apparmor.d/opt.docker-desktop.bin.com.docker.backend

Con el contenido:

abi <abi/4.0>,

include <tunables/global>

/opt/docker-desktop/bin/com.docker.backend flags=(default_allow) {
  userns,

  # Site-specific additions and overrides. See local/README for details.
  include if exists <local/opt.docker-desktop.bin.com.docker.backend>
}

Después reiniciamos AppArmor:

sudo systemctl restart apparmor.service

Ahora Docker Desktop debería iniciar sin necesidad de repetir el ajuste tras cada reinicio.

Advertencia de seguridad

Cambiar la configuración de AppArmor o desactivar restricciones reduce la seguridad del sistema. Solo deberías aplicar estos cambios si realmente necesitas Docker Desktop en tu máquina, y conviene seguir de cerca futuras actualizaciones tanto de Ubuntu como de Docker, ya que es probable que publiquen una solución oficial.

Conclusión

Si usas Ubuntu 24.04 LTS, es probable que Docker Desktop no arranque por defecto debido a la nueva configuración de AppArmor. Existen soluciones temporales (ajustar sysctl) y permanentes (crear un perfil AppArmor específico). Aunque ninguna es ideal, permiten seguir trabajando mientras llega un parche oficial.