Spis treści:
Potrzeba matką wynalazków
Intensywny rozwój oprogramowania – zarówno komputerowego i mobilnego, jak i wbudowanego (firmware) – sprawił, że szczególnego znaczenia nabrał odpowiedni dobór narzędzi deweloperskich, wykorzystywanych w codziennej pracy zarówno przez programistów, jak i testerów oraz managerów. Na poziom złożoności zadań stojących przed osobami zaangażowanymi w rozwój oprogramowania wpływ mają nieustanne zmiany, jakie zachodzą zarówno pod względem sprzętowym (nowe architektury procesorów, urządzenia peryferyjne), jak i programowym (kolejne edycje systemów operacyjnych, frameworków, bibliotek, a nawet… języków programowania).
To wszystko sprawia, że twórcy aplikacji potrzebują metody wygodnego, szybkiego, a przede wszystkim bezpiecznego testowania swoich produktów z możliwością bezproblemowej rekonfiguracji lub przywrócenia środowiska testowego po awarii. Z pomocą przychodzą dwie technologie – wirtualizacja oraz konteneryzacja.
Wirtualizacja vs. Konteneryzacja – co wybrać?
Chyba każdy choć raz spotkał się z pojęciem maszyny wirtualnej – z pomocą oprogramowania takiego, jak VirtualBox bądź VMWare można z łatwością „postawić” wybrany system operacyjny na komputerze, który obsługiwany jest już przez inny OS.
Zadaniem wirtualnej maszyny jest daleko idąca izolacja systemu „gościa” (ang. guest) i uruchomionych na nim aplikacji od systemu „gospodarza” (ang. host) – rozwiązanie takie umożliwia nie tylko zabezpieczenie hosta przed potencjalnymi zagrożeniami płynącymi od strony podrzędnego systemu, ale także ułatwia pracę osobom, które w swoich działaniach potrzebują korzystać z dwóch (lub więcej) systemów operacyjnych bez konieczności ciągłego wyłączania maszyny i bootowania innego systemu z menu startowego. Oprogramowanie umożliwia również tworzenie migawek (snapshotów), czyli zapisu stanu systemu maszyny wirtualnej, do którego będzie można bezpiecznie i szybko powrócić, np. w przypadku poważnego błędu.
Konteneryzacja zapewnia natomiast niższy poziom izolacji – każdy kontener to w istocie „miniaturowe” środowisko pracy z własnymi bibliotekami i aplikacjami, korzystające jednak z zasobów sprzętowych i programowych głównego, nadrzędnego systemu operacyjnego. Ogromną zaletą konteneryzacji jest daleko idąca redukcja zapotrzebowania na moc obliczeniową i pamięć operacyjną (jak i przestrzeń dyskową) w porównaniu do maszyn wirtualnych – a to przekłada się bezpośrednio na płynność pracy oraz dostępność zasobów dla potrzeb testowanych aplikacji.
Instalacja Dockera na Raspberry Pi
W kwestii sprzętowej doskonałym wyborem dla osób chcących rozpocząć korzystanie z konteneryzacji będzie minikomputer Raspberry Pi 4. Docker – jedno z najpopularniejszych środowisk kontenerowych – bez problemu współpracuje z „maliną” – doczekał się zresztą gotowych pakietów instalacyjnych. Aby pobrać Dockera w odpowiedniej wersji, należy uruchomić terminal Raspberry Pi i wpisać komendę, która automatycznie pobierze i zapisze na dysku (a dokładniej – karcie microSD) kompletny skrypt instalacyjny:
curl -fsSL https://get.docker.com -o get-docker.sh
Po pobraniu należy uruchomić skrypt za pomocą komendy shella:
sh get-docker.sh
Całość konfiguracji, jak i pobieranie odpowiednich plików binarnych, zostanie wykonane automatycznie, dzięki czemu nie trzeba ręcznie doinstalowywać brakujących repozytoriów. Na koniec warto dodać aktualnego użytkownika do grupy docker (zwykle będzie to po prostu domyślne konto o nazwie pi), utworzonej podczas instalacji oprogramowania:
sudo usermod -aG docker $USER
Operacja taka umożliwi uruchamianie Dockera bez konieczności logowania jako root, co znakomicie ułatwi codzienną pracę z tym środowiskiem.
Tworzenie i używanie kontenerów Dockera
W przypadku Raspberry Pi Docker działa na dokładnie takiej samej zasadzie, jak ma to miejsce na innych komputerach – pracę należy rozpocząć od pobrania odpowiedniego obrazu kontenera, czyli gotowego zestawu bibliotek, plików systemowych oraz narzędzi systemowych, bazującego na jednym ze znanych systemów operacyjnych, np. Debiana, Ubuntu, czy Fedory. Przykładowo, aby uruchomić obraz Ubuntu, należy wykonać komendę:
docker container run -it ubuntu /bin/bash
Polecenie to – oprócz uruchomienia (a przedtem – jeżeli to konieczne – automatycznego pobrania) obrazu popularnego Linuksa – wykona także operację zapisaną po nazwie obrazu. W tym przypadku zostanie uruchomiony linuksowy wiersz polecenia, co pozwoli rozpocząć pracę „wewnątrz” kontenera tak, jak gdyby był on zwykłym komputerem, pracującym pod kontrolą Ubuntu.
Jak oceniasz ten wpis blogowy?
Kliknij gwiazdkę, aby go ocenić!
Średnia ocena: 4.5 / 5. Liczba głosów: 12
Jak dotąd brak głosów! Bądź pierwszą osobą, która oceni ten wpis.