Spośród wielu narzędzi, których będziesz używał, jednym z podstawowych będzie Docker. To w kontenerach najlepiej odpalić inne narzędzia takie jak Jenkis, Puppet, Ansible Tower czy nawet własną instancję GitLaba. Rozwiązanie takie sprawdza się zarówno na systemach produkcyjnych jak i w laboratorium. Wiele aplikacji jest od podstaw napisanych, lub zostało zoptymalizowane, do działania w kontenerach. Instalacja Dockera jest bardzo prosta. Pamiętaj jednak, że Docker zaraz po zainstalowaniu nie jest odpowiednio zabezpieczony, aby bezpiecznie go wykorzystywać poza domowym zaciszem lub labem.
Co potrzebuję by uruchomić Dockera?
Docker dostępny jest praktycznie na wszystkie platformy sprzętowe i systemy operacyjne. Pamiętaj jednak, że konteneryzacja to metoda wirtualizacji zasobów na poziomie systemu operacyjnego. To nie jest maszyna wirtualna, która posiada własny system operacyjny i jest niezależna od hosta, na którym została uruchomiona. Dlatego stosując samą konteneryzację, bez dodatkowej wirtualizacji, w kontenerze uruchomimy jedynie aplikacje kompatybilne z systemem operacyjnym i architekturą sprzętową hosta.
Aplikacje w Dockerze zajmują mniej zasobów sprzętowych niż maszyna wirtualna, gdyż nie potrzebują do każdej swojej instancji własnej kopii pełnego systemu operacyjnego. Potrzebujesz jedynie zasoby pod konkretny kontener. Dlatego Dockera z powodzeniem uruchomisz zarówno na wysokowydajnym klastrze serwerów, maszynie wirtualnej uruchomionej na domowym PC o średnich parametrach czy nawet na RaspberryPi. Spora część moich narzędzi czy aplikacji monitorujących działa w klastrze Docker Swarm na kilku “malinkach”. Instalacja Dockera nie jest trudna i nie powinna zająć Ci więcej niż kilka minut.
Skąd pobrać Dockera?
Do nauki polecam uruchamiać Dockera na kilku maszynach wirtualnych z systemem operacyjnym Linux. Potrzebujesz więcej niż jednego systemu z Dockerem aby dobrze zrozumieć takie zagadnienia jak obsługa sieci czy klastrowanie. Każda z wirtualnych maszyn może pracować pod kontrolą innej dystrybucji Linuksa. Ja zazwyczaj używam jednego z trzech. Na moich RaspberryPi uruchamiam standardowego Raspbiana. Na maszynach wirtualnych dedykowanych do konteneryzacji zazwyczaj stosuję PhotonOS. Jest to darmowa dystrybucja stworzona przez VMware zoptymalizowana pod konteneryzację, której kernel jest dodatkowo zoptymalizowany do uruchomienia na hypervisorach ESXi. Możesz go jednak uruchomić na dowolnym hypervisorze. Trzecim systemem, który wykorzystuję jest Ubuntu.
Docker dostępny jest zarówno jako produkt w pełni darmowy utrzymywany przez społeczność (Docker Community Edition) jak i zaawansowane płatne rozwiązanie korporacyjne (Docker Enterprise Edition).
Wiele dystrybucji Linuksa ma obrazy Dockera CE w swoich własnych repozytoriach, możesz też wybrać by został on zainstalowany od razu podczas instalacji systemu. Jeżeli go nie ma, lub chcesz użyć pakietów dostarczonych bezpośrednio przez twórców Dockera (zazwyczaj znajdziesz tam nowszą jego wersję niż w dystrybucjach linkusa), musisz dodać ich repozytorium do konfiguracji swojego systemu. Przygotowali oni odpowiednie paczki zgodne z dystrybucjami takimi jak Ubuntu, Fedora, Debian i CentOS dla różnych platform sprzętowych. Kliknij na link, aby przejść do instrukcji instalacji dla każdej z nich. Wybierz dystrybucję, na której bazuje Twoje wydanie systemu. Możesz też ręcznie zainstalować binaria.
A co z innymi platformami?
Instalacja Dockera na Linuksie jest najprostsza, co nie wyklucza wykorzystania innych systemów operacyjnych. Jednak w ich przypadku spotkamy się z koniecznością instalacji dodatkowej maszyny wirtualnej, w której Docker będzie działał. Korzystający z systemu MacOS mogą wybrać pomiędzy dwoma produktami – Docker Desktop for Mac oraz Docker Toolbox. Pierwszy z nich wykorzystuje HyperKit, czyli zestaw narzędzi pozwalający, mówiąc w sporym uproszczeniu, umieścić hypervisor jako element aplikacji. Docker Toolbox zaś wymaga do poprawnej pracy zainstalowanego VirtualBoxa. Powiem ci kiedyś trochę więcej o różnicach pomiędzy tymi produktami. Jeżeli stawiasz swoje pierwsze kroki wybór nie ma większego znaczenia.
W systemie Windows instalacja Dockera (nazywa się po prostu Docker Desktop for Windows) wymaga aktywacji Hyper-V oraz rozszerzenia systemu Containers. Nie skorzystasz jednak z tego produktu, jeżeli jednocześnie wykorzystujesz hypervisor VMware, na przykład VMware Workstation. Niestety aktywacja Hyper-V wyklucza poprawną pracę produktów VMware. W takim przypadku pozostaje Ci opisany wcześniej sposób i instalacja Dockera wewnątrz maszyny wirtualnej.
Uruchomienie Dockera
Dockera uruchamiasz tak jak każdą inna usługę systemową. Dlatego warto skorzystać z gotowych paczek, aby odpowiednie skrypty startowe zostały także zainstalowane i uruchamiane przy starcie systemu. Aby zweryfikować, czy usługa działa poprawnie wystarczy, że wydasz dowolne polecenie, na przykład “docker info“. Jeżeli usługa działa, zobaczysz na ekranie informacje informacje o konfiguracji działającego silnika konteneryzacji. Jeżeli zaś usługa nie działa, wyświetli się komunikat informujący o braku połączenia z kanałem komunikacyjnym (socket).
Host:~ lab$ docker info Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
[…] zadbać o odpowiednie mechanizmy bezpieczeństwa. Nie inaczej jest z Dockerem. W poprzednim swoim artykule zaznaczałem, że Docker w swojej domyślnej instalacji może się co najwyżej nadawać do domowego […]
[…] Mechanizm Docker Configs, obok Secrets, stanowi jeden z dwóch powodów, dlaczego rekomenduję uruchamianie klastra Swarm nawet na pojedynczym hoście z Dockerem. […]