¿Cuál es la solución para el acoplador privilegiado anidado LXD (/dev/.lxc/proc/ error)?

8

El lanzamiento de un contenedor acoplable privilegiado en un LXD falla con esto:

docker: Error response from daemon: linux runtime spec devices: lstat /dev/.lxc/proc/1482/fdinfo/12: no such file or directory.

Pasos para reproducir:

lxc launch ubuntu-daily:16.04 docker -p default -p docker
lxc exec docker -- apt install docker.io -y
lxc exec docker bash
sudo curl -L git.io/scope -o /usr/local/bin/scope
sudo chmod a+x /usr/local/bin/scope
scope launch

Guía original: LXD 2.0: Docker en LXD

Informe de error: los contenedores Docker fallan en el directorio /dev/.lxc/proc # 2825 - GitHub

¿Cómo hacer que funcione?

Velkan
fuente
Esa guía que vinculó dice que necesita A Docker image which behaves when confined by user namespaces, or alternatively make the parent LXD container a privileged container (security.privileged=true). ¿Es posible que el problema sea con scope? ¿Se puede ejecutar lxc exec docker -- docker run --detach --name app carinamarina/hello-world-app, o alternativamente, funciona en un contenedor privilegiado?
Jonathan Y.
LXD era un contenedor privilegiado (el perfil LXD 'docker' da security.privileged=true). He probado alguna hello-worldimagen en un LXD privilegiado: el mismo problema. Ya no tengo esta configuración, movida a KVM.
Velkan

Respuestas:

0

Según Stephane Graber (desarrollador principal de LXD), ¡ya no necesita el perfil de acoplador LXD!

Ver ... https://github.com/lxc/lxd/issues/3299

bmullan
fuente
Por favor, trate de proporcionar siempre el número de versión desde que está arreglado. Siempre es frustrante clonar repositorios, buscar el commit y la próxima versión posterior.
Velkan
0

Solo para limpiar esto un poco, esto se resuelve bastante bien (como señala @bmullan).

16.04, lxd versión 2.21, funciona la siguiente secuencia:

lxc launch ubuntu-daily:xenial xenial
lxc config set xenial security.nesting true
lxc exec xenial snap install docker
lxc exec xenial docker run ubuntu ls

El docker.iopaquete y el dockercomplemento funcionan, pero son versiones diferentes y tienen diferentes políticas de actualización, etc. La versión de complemento utilizada anteriormente es 17.06.2-ce, mientras que el paquete docker.io en xenial es 1.13.1.

dpb
fuente