Istnieje możliwość uruchomienia kontenerów dockera z graficznym interfejsem, w związku z tym nie jesteś ograniczony tylko i wyłącznie do konsoli. Tak samo jak w przypadku klasycznej instalacji systemu na dysku jesteś w stanie zainstalować każde z dostępnych środowisk graficznych. Oczywiście musisz wiedzieć, że jednym z atutów korzystania z kontenerów jest ich minimalistyczność w stosunku do zainstalowanego oprogramowania. Jeżeli zainstalujesz środowisko graficzne to znaczy, że nie trzymasz się już tej zasady. Sprawdź jak stworzyć kontener Ubuntu z graficznym interfejsem.

Instalacja GUI wymaga zewnętrznego oprogramowania, oraz podstawowej konfiguracji o której przekonasz się, że jest banalnie prosta. W tym materiale chciałbym pokazać, że kontenery mogą posiadać graficzny interfejs, dlatego mogą działać prawie, że w identyczny sposób jak system zainstalowany na dysku.

 

Zapis na newsletter!

Zanim jednak rozwinę temat dalej to jedna informacja na początek. Prowadzę regularny, cotygodniowy newsletter z poradami związanymi z Zabbixem, monitoringiem oraz dobrymi praktykami w IT. Jeżeli nie chcesz przegapić kolejnych części oraz zaproszeń na nasze darmowe szkolenia to zapraszam do zapisu. Wystarczy pobrać mój poradnik. Monitoring IT – Dobre Praktyki. Wystarczy wejść klikając na obrazek:

__________________________________________

 

Kontener Ubuntu – pobranie obrazu podstawowego

Jak mówi nam tytuł uruchomimy system Ubuntu korzystając z dockera. Niemniej jednak jeżeli chcesz nie musi być to akurat ta dystrybucja. W większości przypadków wystarczy, że podmienisz dostępny menedżer pakietów. Natomiast zawsze istnieje możliwość, że jeżeli zainstalujesz inny system możliwe że będziesz zmuszony dodatkowo coś jeszcze skonfigurować czego nie udało mi się tutaj opisać.

Teraz zajmijmy się tytułowym zagadnieniem.

Pierwsze co musimy zrobić to pobrać bazowy obraz systemu:

docker pull ubuntu

Następnie, sprawdzamy czy znajduje się na liście:

docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

ubuntu latest 2dc39ba059dc 2 weeks ago 77.8MB

Najnowszy obraz Ubuntu został pobrany, co potwierdza powyższy przykład. Teraz stworzymy kontener i skonfigurujemy go… ale nim to zrobimy …

Dlaczego proste rzeczy, dokładnie opisuję

Wszystko co do tej pory robiliśmy powinieneś znać, oczywiście jeżeli interesujesz się dockerem. W najbliższym czasie pozostałe czynności jakie wykonamy też nie będą różniły się od podstawowych sposobów korzystania z dockera. Pomimo wspomnianej prostoty nadal zamierzam wytłumaczyć wszystko jak działa i do czego służy. Przekonałem się, że dzięki praktyce rzeczy które z teorii są dla nas niezrozumiałe w wielu przypadkach jesteśmy w stanie pojąć wykonując to w sposób praktyczny. Dodając do tego opis, autor pomaga znacznie w tym, dlatego jeżeli jesteś zaawansowanym użytkownikiem dockera, czytając ten materiał musisz się na to przygotować. Od zawsze chcę aby to co piszę było zrozumiałe dla wszystkich niezależnie od poziomu posiadanej wiedzy, dlatego staram się opisywać wszystko dokładnie niejednokrotnie się powtarzając.

Tym sposobem odszedłem treścią od głównego wątku, ale już kończę ten krótki akapit z moim tłumaczeniem.

Uruchomienie kontenera i jego wstępna konfiguracja

Stwórzmy nasz kontener z systemem Ubuntu:

docker run -itd --name ubuntu-gui -p 5800:5900 ubuntu

Uruchamiamy kontener w interaktywnej powłoce (-i) w której możemy wydawać polecenia (-t), ale nie przechodzimy automatycznie do wspomnianej powłoki (-d) tylko uruchamiamy kontener z możliwością zalogowania. Następnie zamiast korzystać z automatycznie wygenerowanej nazwy przez dockera określamy nasz kontener po swojemu (–name) by był lepiej przez nas rozpoznawany na liście. Na końcu udostępniamy nasz system na wskazanym porcie (-p) i wybieramy obraz (ubuntu) z którego chcemy stworzyć nasz kontener.

Po stworzeniu kontenera sprawdźmy czy pojawia się na liście:

docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

cefd869f00e3 ubuntu "bash" 3 seconds ago Up 2 seconds 0.0.0.0:5800->5900/tcp, :::5800->5900/tcp ubuntu-gui

Prezentowane polecenie w takiej formie wyświetla kontenery tylko uruchomione, dlatego mamy potwierdzenie, że wszystko jak do tej pory działa tak jak chcieliśmy.

Wejście do powłoki i instalacja niezbędnego oprogramowania

Teraz zajmiemy się jak podpowiada nagłówek po pierwsze wejściem do powłoki, a po drugie instalacją niezbędnego oprogramowania.

Powłoka kontenera

Wykonajmy pierwszą wspomnianą czynność:

docker exec -it ubuntu-gui /bin/bash

Dzięki poleceniu uruchomimy powłokę naszego systemu. Opcje -it wyjaśniłem w poprzednim paragrafie dlatego nie będę się powtarzał. Natomiast na końcu określam typ powłoki z jakiej chcę korzystać, czyli w tym wypadku bash.

Instalacja oprogramowania

Jeżeli jesteś użytkownikiem systemu Linux to wiesz, że istnieje kilka możliwych środowisk graficznych do zainstalowania. W tym materiale będę instalował środowisko graficzne XFCE 4, z którego korzystam na swoim komputerze. Przejdźmy zatem do instalacji:

apt update && apt upgrade && apt install xfce4 tightvncserver

Przeprowadzamy standardową aktualizację oraz instalację środowiska graficznego XFCE4 oraz dodatkowo instalujemy serwer VNC.

Jak to wszystko będzie działało

Otóż teraz chciałbym wyjaśnić w jaki sposób będziemy uruchamiali nasz kontener z GUI. W poprzednim kroku zainstalowaliśmy program umożliwiający zdalne połączenie (server) w tym wypadku z naszym kontenerem. Za chwilę go skonfigurujemy i na naszym systemie głównym zainstalujemy taki (klient) dzięki któremu połączymy się z nim.

Konfiguracja tightvncserver

Abyśmy mogli połączyć się z kontenerem musimy wykonać konfigurację programu tightvncserver w nim.

Pierwszą wymaganą czynnością jest ustawienie użytkownika przy pomocy zmiennej środowiskowej:

export USER=root

Następnie tworzymy hasło do połączenia zdalnego:

vncpasswd

Using password file /root/.vnc/passwd

VNC directory /root/.vnc does not exist, creating.

Password: 

Verify:   

Would you like to enter a view-only password (y/n)? n

Z otrzymanych informacji wynika, że zostały stworzone niezbędne pliki oraz tworzymy hasło którego użyjemy do połączenia z kontenerem. W ostatniej linii przykładu jesteśmy pytani czy chcemy utworzyć hasło umożliwiające tylko przeglądanie. W naszym przypadku nie udostępniamy   kontenera na zewnątrz dlatego jak prezentuje powyższy przykład wpisałem n.

Po wykonaniu wstępnej konfiguracji pozostało udostępnić nasz kontener:

tightvncserver :0 -geometry 1366x768 -depth 24

xauth:  file /root/.Xauthority does not exist

New 'X' desktop is 6f25aa6765f1:0

Creating default startup script /root/.vnc/xstartup

Starting applications specified in /root/.vnc/xstartup

Log file is /root/.vnc/6f25aa6765f1:0.log

Teraz postaram się opisać zastosowane opcje w przykładzie:

:0 – określamy numer ekranu, (numer sesji) gdzie będzie przesłany obraz;

-geometry – określa rozdzielczość;

-depth – określa głębię kolorów;

Konfiguracja zakończyła się powodzeniem, pozostaje się zalogować.

Logowanie do kontenera

Jak już wspomniałem będziemy korzystali ze zdalnego połączenia. W kontenerze zainstalowaliśmy serwer, natomiast w naszym głównym systemie musimy zainstalować oprogramowanie dzięki któremu połączymy się ze wspomnianym serwerem. Do tego celu użyję programu Vinagre. Moim głównym systemem jest Debian dlatego instalację przeprowadzamy w poniższy sposób:

sudo apt install vinagre

Program znajduje się w menu Programy → Internet → Zdalny pulpit, o ile oczywiście korzystasz tak samo jak ja z XFCE. Po uruchomieniu pojawi się okno w którym w lewym górnym rogu klikasz na ikonę Połącz (obrazek z wtyczką) i następnie uzupełniasz tak jak na poniższym obrazku:

Kontener Ubuntu

Następnie klikamy Połącz.

Pojawi się okno w którym musimy podać wcześniej utworzone hasło i powinniśmy otrzymać widok pulpitu tak jak na poniższym obrazku:

Kontener Ubuntu

Podsumowanie

W bardzo szybki sposób zainstalowaliśmy, skonfigurowaliśmy i uruchomiliśmy graficzny interfejs w kontenerze gdzie znajdował się system Ubuntu. Teraz już wiesz, że pomimo iż to kontener to nie stawia nam żadnych ograniczeń, możemy w nim zainstalować graficzny interfejs i korzystać tak jak z normalnego systemu. W artykule pominąłem kilka istotnych spraw jak na przykład stworzenie własnej sieci ponieważ nie chciałem nadto go wydłużać.

Chcesz więcej?

Oczywiście, jeżeli nie chcesz przegapić tego typu materiałów, to zapisz się na mój newsletter i przy okazji odbierz darmowe bonusy, np. e-booka ze zdjęcia poniżej! Prowadzę regularny, cotygodniowy newsletter z poradami związanymi z automatyzacją, monitoringiem oraz dobrymi praktykami w IT.

Zapisy TUTAJ

Zapisz się na Newsletter i odbierz za darmo e-book "Monitoring IT"!

X