DockerVNC czyli kontener w graficznych szatach
Były święta i postanowiłem trochę pobawić się technologią docker i doszło do tego, że hobbystycznie uruchomiłem swego rodzaju projekt. Projekt nosi nazwę DockerVNC, który dostarcza kod źródłowy do budowy obrazów systemów wraz z zainstalowanym środowiskiem graficznym, usługą VNC, noVNC i z innymi preinstalowanymi aplikacjami.
Nie jest to mój pomysł, został on sforkowany z tego projektu z którego na co dzień korzystałem. Niestety zdaje się być delikatnie mówić porzucony więc postanowiłem go skopiować, wprowadzić trochę modyfikacji i opublikować. Zdaję sobie sprawę, że podobnych rozwiązań w sieci jest całe mnóstwo, ale jak to mówią... może i ciasne, ale własne.
Co to jest Docker?
Nie będę opisywał czym jest docker, jakie są zalety oraz wady, ponieważ w sieci można znaleźć bardzo dużo materiałów na ten temat. Ze swojej strony polecam rzucić okiem na tę stronę, która opisuje czym jest docker, co to jest maszyna wirtualna oraz jakie są różnice pomiędzy nimi.
Co oferuje mój projekt?
Mój projekt oferuje skrypty dla usługi docker umożliwiające wybudowanie obrazów wyposażonych w środowisko graficzne XFCE (w przyszłości może również i MATE), preinstalowane podstawowe aplikacje takie jak przeglądarka internetowa, edytor plików tekstowych oraz serwer VNC i noVNC, które umożliwiają połączenie się z systemem i korzystanie ze środowiska graficznego. Póki co dostępny jest tylko system Ubuntu 18.04 LTS - dlaczego on? System ten znam dosyć dobrze, bardzo dużo oprogramowania dostępnego w sieci współpracuje z tym systemem dlatego też jako on poszedł na pierwszy ogień. Oprócz tego dla polskiej społeczności przygotowałem skrypt, który wybuduje obraz z w pełni spolszczonym oprogramowaniem.
Do czego można to wykorzystać?
Testowanie aplikacji
Jeżeli masz jakiś program który chcesz przetestować ale nie chcesz go instalować na swoim głównym systemie, to możesz najpierw uruchomić kontener z odseparowanym od reszty twojego oprogramowania systemem, sprawdzić dany program a dopiero potem zainstalować go na fizycznym komputerze.
Trzymanie portfeli kryptowalut
System w kontenerze dockera działa jako odseparowane środowisko, także jeżeli jakieś złośliwe oprogramowanie dostanie się do naszego macierzystego systemu, to system działający w kontenerze wraz z oprogramowaniem na nim zainstalowanym jest bezpieczny (ale to też nie oznacza, że nie ma na niego zagrożeń).
Uruchamianie dodatkowego oprogramowania
Korzystam ze systemu openSUSE i zauważyłem, że wiele aplikacji które są np. na Ubuntu nie są dostępne dla mojego systemu operacyjnego. Z tego powodu chcąc skorzystać z takiego programu uruchamiam kontener z określonym systemem, pobieram interesujący mnie program, uruchamiam go i tyle. Nie muszę się bawić w kompilację, w przebudowę paczki czy też wykonywać inne magiczne sztuczki tylko dlatego, aby uruchomić dany program pod openSUSE.
Kilka porad odnośnie kontenera
Proces instalacji został opisany na tej stronie internetowej. Zakładam również, że jeżeli znasz dockera to umiesz wykorzystać podstawowe polecenia służące do zarządzania tą usługą. Przy okazji jednak kilka porad, które przydadzą się do tworzenia kontenera:
Zmień hasło do VNC
Od razu zmień hasło do VNC podczas tworzenia kontenera. Nie korzystaj z domyślnego hasła.
Zmień hasło dla użytkownika docbox
Użytkownik docbox może podnosić swoje uprawnienia przy pomocy sudo, dlatego też po uruchomieniu kontenera zmień hasło. Nie korzystaj z domyślnego hasła.
Udostępnij folder kontenerowi
Jeżeli chcesz mieć dostęp do fizycznego dysku twardego z poziomu kontenera, to musisz go mu udostępnić.
Przypisz adres IP
Przypisz konkretny adres IP swojemu kontenerowi. Ułatwi to łączenie się z nim poprzez VNC.
Wykonaj obraz z kontenera
Kiedy już wszystko skonfigurujesz wykonaj obraz z kontenera. Cały proces polega na tym, że konwerter "przekształcany" jest na obraz, następnie można go wyeksportować i na jego podstawie utworzyć nowy kontener na innym komputerze, ale z już wprowadzonymi przez ciebie zmianami.
Podsumowanie
Projekt jest tworzony hobbystycznie więc nie oczekuj wsparcia technicznego na poziomie korporacyjnym - na ile będę mógł, na tyle pomogę. Uczę się tej technologii także jeżeli zauważyłeś błąd to zgłoś go w komentarzu lub na stronie projektu. Możesz również zgłaszać swoje propozycje zmian - jeżeli uważasz, że warto dodać jakiś program do systemu to daj znać, a przedyskutujemy tę kwestię ;-).
Epilog
Zapewne wiele osób zapyta dlaczego nie wybudowałem obrazów i nie wrzuciłem do oficjalnego repozytorium dockera. Odpowiedź jest prosta - mój internet nie pozwala na w miarę szybkie wysłanie obrazu do internetu oraz nie posiadam żadnego VPSa ani usługi w chmurze, które mogłyby mi pomóc wykonać to zadanie. Być może po nowym roku zacznę się za tym rozglądać i szukać czegoś "na godziny" z przejrzystym cennikiem, aby płacić tylko za faktyczny czas użytkowania danej maszyny. Może ktoś coś poleci?
Źródła
Strona projektu w serwisie Github
Wszystkie zdjęcia zawarte we wpisie zostały wykonane przez autora.
Jak wyeksportować obraz do archiwum i następnie załadować go na innym komputerze (sekcja Using Save
)
Wsparcie
Podobało się? Wesprzyj!