Logowanie do kontenera Dockera przez VNC

0

Próbuję zalogować się do kontenera Dockera przez VNC.
Niestety przy próbie połączenia z kontenerem pojawia się komunikat (na szarym tle, kursor w kształcie X), który wskazuje na problem z uprawnieniami:

Unable to contact settings server. Failed to close file descriptor for child process (operation not permited)

Po „krótkich” poszukiwaniach zlazłem rozwiązanie, które polega na tym, aby uruchomić kontener z dodatkowym parametrem:

--security-opt seccomp=unconfined

https://gist.github.com/nathabonfim59/b088db8752673e1e7acace8806390242

Wtedy jest ok, można połączyć się przez VNC, więc niby problem rozwiązany, ale:

  1. przy tym parametrze następuje deaktywacja mechanizmu Seccomp, co powoduje, że procesy w kontenerze nie są ograniczone, więc jest to bardziej ryzykowne – więc wolałbym tego nie używać
  2. jest jakaś inna metoda (może bardziej bezpieczna) na rozwiązanie tego problemu z łączeniem z VNC?

Zaznaczę, że na hoście korzystam z Ubuntu 20.04 – na kontenerze instaluje obraz Kali Linux (xfce). Co ciekawe, gdy przeloguje się na Ubuntu 22.04 – wtedy jest ok – łącze sie z VNC. Również na VPS na którym mam Debiana, mogłem bez problemu uruchomić kontener Kali Linux i połączyć się z nim przez VNC. Więc system pewnie nie ma tu znaczenia, tylko ustawienia związane uprawnieniami użytkownika, ale próbowałem różnych kombinacji logowania (z konta root, zwykłego użytkownika itd), ale na Ubuntu 20.04 ciągle jest ten sam komunikat jak wyżej i ten szary ekran (próbowałem zmodyfikować uprawnienia do pliku xstartup przez chmod +x, ale to też nie pomogło)

3

Zasadnicza kontenery to nie witulane maszyny. Nie mają GUI bo po co. Nie połączysz się więc przez VNC.
Jest tylko linia komend dostępna przez:
docker exec HASHKONTENRA -it bash
Zoabcz jak działa docker exec

0
jurek1980 napisał(a):

Zasadnicza kontenery to nie witulane maszyny. Nie mają GUI bo po co. Nie połączysz się więc przez VNC.
Jest tylko linia komend dostępna przez:
docker exec HASHKONTENRA -it bash
Zoabcz jak działa docker exec

Tak, wiem, że logowanie do kontenera przez VNC raczej nie jest standardowym działaniem:) ale chciałem przetestować działanie pewnego programu (przy wykorzystaniu WINE), który jednak wymaga, aby było jakieś GUI zainstalowane.

Może nie do końca jasno to opisałem, ale na pewno da się to zrobić i to właśnie mi się udało na Debianie i na Ubuntu 22.04, ale próbuje to zrobić na Ubuntu 20.04 i niestety pojawia się ten komunikat z błędem, który rozwiązałem poprzez dodanie parametru --security-opt seccomp=unconfined przy uruchamianiu kontenera - ale próbuję wyjaśnić z czego to wynika i czy jest jakieś inne rozwiązanie tego problemu.

0

To skoro potrzebujesz GUI to postaw VMke.
Docker nie jest od tego.

1

Tu jakiś leciwy artykuł o tym https://linuxmeerkat.wordpress.com/2014/10/17/running-a-gui-application-in-a-docker-container/
Na stackoverflow ktoś poleca swój projekt do tego https://github.com/subuser-security/subuser

Podobny problem miałem kiedyś na windowsie, nawet mając vmkę środowisko graficzne nie jest odpalone gdy się z nią nie połączymy. Rozwiązaniem w przypadku windowsa było nawiązanie sesji RDP - to zmusza system do odpalenia wirtualnego sterownika grafiki i umożliwia połączenie się przez VNC i robienie screenshotów

1
jurek1980 napisał(a):

Zasadnicza kontenery to nie witulane maszyny. Nie mają GUI bo po co. Nie połączysz się więc przez VNC.

Mylić się jest ludzką rzeczą
https://developer.toradex.com/torizon/application-development/gui/
Da się i nawet jest to racjonalnie uzasadnione

2
Marius.Maximus napisał(a):

Mylić się jest ludzką rzeczą
https://developer.toradex.com/torizon/application-development/gui/
Da się i nawet jest to racjonalnie uzasadnione

Także wiem, że są takie wynalazki gdzie ktoś próbuje pchać GUI. Sam jak miałem pierwszą styczność z dockerem to zaczynałem od "how to connect VIA RDP", tylko jak widać na załączonym obrazku nie działa to jak VMka i nie ma tak działać. Po prostu nie od tego jest Docker IMHO i już.

1

@jurek1980: Co dla jednych jest sufitem, dla innych jest podłogą, co nie zmienia faktu że pewnie 99.5% uzywa Dockera bez gui , vnc i innych wynalazków

@MaNick: moze jakis gotowiec z github-a jako punkt wyjscia do wlasnych eksperymentow https://github.com/Jornack/kali-docker-vnc-novnc

0

Zgodzę się że "Docker nie jest do tego", bo wybitnie rzadko potrzebne jest odpalenie GUI, iksów i pełnego DE w kontenerze, ale jest to jak najbardziej możliwe i może być szybsze niż pełne wirtualki. Proces to proces, czy to jest nginx, czy prawie cały userspace - nie ma znaczenia :)

Trochę szkoda, że pierwszą odpowiedzią w tym poście jest typowe dla stackoverflow "don't use X, use Y, X is wrong".

0
Marius.Maximus napisał(a):

@MaNick: moze jakis gotowiec z github-a jako punkt wyjscia do wlasnych eksperymentow https://github.com/Jornack/kali-docker-vnc-novnc

Dziwne... teraz u mnie działa:) tzn. po uchronieniu kontenera z obrazu z linka na Ubuntu 20.04 mogę zalogować się na kontener przez VNC.

Już prawie byłem przekonany, że jednak coś z tymi domyślnymi ustawieniami Ubuntu 20.04 jest nie tak, ponieważ uruchomiłem jeszcze raz czystą wersję Ubuntu 20.04 na VM i też nie mogłem zalogować się przez VNC na kontener, ale gdy zrobiłem upgrade do Ubuntu 22.04 - wtedy już mogłem zalogować się przez VNC - wtedy korzystałem z oficjalnego obrazu kalilinux/kali-rolling dla Dockera. Ale teraz też na Ubuntu 20.04 logowanie przez VNC działa, tyle że przy wykorzystaniu innego obrazu Kali Linux.

Dziękuję za pomoc.
(chociaż jeszcze zostaję z jedną rzeczą, która nie daje mi spokoju - DLACZEGO tak się dzieje :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1