Jakie jest obejście dla zagnieżdżonego LXD dokowanego Pivileged (błąd /dev/.lxc/proc/)?

8

Uruchomienie uprzywilejowanego kontenera dokowanego w LXD kończy się niepowodzeniem:

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

Kroki ku reprodukcji:

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

Oryginalny przewodnik: LXD 2.0: Docker w LXD

Raport o błędzie: Awarie kontenerów Docker w katalogu /dev/.lxc/proc # 2825 - GitHub

Jak to działa?

Velkan
źródło
Przewodnik, który połączyłeś, mówi, że potrzebujesz A Docker image which behaves when confined by user namespaces, or alternatively make the parent LXD container a privileged container (security.privileged=true). Czy to możliwe, że problem dotyczy scope? Czy możesz uruchomić lxc exec docker -- docker run --detach --name app carinamarina/hello-world-applub alternatywnie, czy działa on w uprzywilejowanym kontenerze?
Jonathan Y.
LXD był uprzywilejowanym kontenerem (daje profil LXD „dokera” security.privileged=true). Próbowałem jakiś hello-worldobraz w uprzywilejowanym LXD - ten sam problem. Nie mam już tej konfiguracji, przeniesiono do KVM.
Velkan

Odpowiedzi:

0

Według Stephane Grabera (głównego programisty LXD) profil dokowania LXD nie jest już potrzebny!

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

bmullan
źródło
Staraj się zawsze podawać numer wersji od momentu, gdy zostanie on naprawiony. Zawsze frustrujące jest klonowanie repozytoriów, wyszukiwanie zmian i następnych wydań po nich.
Velkan
0

Aby to trochę posprzątać, zostało to całkiem ładnie rozwiązane (jak wskazuje @bmullan).

16.04, lxd wersja 2.21, działa następująca sekwencja:

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

Zarówno docker.iopakiet, jak i dockerprzystawka działają, ale są różnymi wersjami i mają różne zasady aktualizacji itp. Używana powyżej wersja przystawki to 17.06.2-ce, a pakiet docker.io w Xenial to 1.13.1.

dpb
źródło