Was ist die Problemumgehung für LXD-verschachtelte privilegierte Docker (/dev/.lxc/proc/ error)?

8

Das Starten eines privilegierten Docker-Containers in einer LXD schlägt folgendermaßen fehl:

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

Schritte zum Reproduzieren:

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

Originalanleitung: LXD 2.0: Docker in LXD

Fehlerbericht : Docker-Container schlagen im Verzeichnis /dev/.lxc/proc # 2825 - GitHub fehl

Wie funktioniert es?

Velkan
quelle
Der von Ihnen verlinkte Leitfaden sagt, dass Sie ihn brauchen A Docker image which behaves when confined by user namespaces, or alternatively make the parent LXD container a privileged container (security.privileged=true). Ist es möglich, dass das Problem bei ist scope? Können Sie es ausführen lxc exec docker -- docker run --detach --name app carinamarina/hello-world-appoder funktioniert es alternativ in einem privilegierten Container?
Jonathan Y.
LXD war ein privilegierter Container (das 'Docker'-LXD-Profil gibt an security.privileged=true). Ich habe ein hello-worldBild in einer privilegierten LXD ausprobiert - das gleiche Problem. Habe diese Konfiguration nicht mehr, bin zu KVM verschoben worden.
Velkan

Antworten:

0

Per Stephane Graber (LXD-Hauptentwickler) benötigen Sie das LXD-Docker-Profil nicht mehr!

Siehe… https://github.com/lxc/lxd/issues/3299

bmullan
quelle
Bitte versuchen Sie immer, die Versionsnummer anzugeben, seit sie behoben ist. Es ist immer frustrierend, Repos zu klonen, nach dem Commit und der nächsten Veröffentlichung danach zu suchen.
Velkan
0

Nur um dies ein wenig aufzuräumen, ist dies ziemlich gut gelöst (wie @bmullan betont).

16.04, lxd Version 2.21, die folgende Sequenz funktioniert:

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

Das docker.ioPaket und der dockerSnap funktionieren beide, sind jedoch unterschiedliche Versionen und haben unterschiedliche Update-Richtlinien usw. Die oben verwendete Snap-Version ist 17.06.2-ce, während das docker.io-Paket in xenial 1.13.1 ist.

dpb
quelle