Ta strona wykorzystuje pliki cookie w celu prezentacji dopasowanych dla Ciebie treści. Możesz włączyć/wyłączyć obsługę plików cookies w swojej przeglądarce.

Dowiedz się więcej
Dlaczego warto opanować Dockera? Poznaj 6 niezastąpionych funkcjonalności

Dlaczego warto opanować Dockera? Poznaj 6 niezastąpionych funkcjonalności

Opublikowano  przez Ewa Kaczmarz-Wawryk, Marek Zoellner (Ilustracja: Docker.com)

Docker od jakiegoś czasu podbija rankingi popularności narzędzi używanych przez programistów. Wykorzystują go m.in. Senior Developerzy, DevOps i Software Architekci oraz takie potęgi, jak Netflix, Spotify, PayPal czy Uber. Sprawdź, czy Tobie również może się przydać w rozwoju kariery.

Docker to platforma typu open-source do projektowania oraz obsługi aplikacji i systemów kontenerowych (konteneryzacji). Pozwala na umieszczanie fragmentów kodu w pojedynczych, mniejszych kontenerach, które są od siebie niezależne i łączą kod źródłowy aplikacji z zależnościami i bibliotekami systemu operacyjnego.

Jak wskazuje raport StackOverflow, Docker to obecnie technologia, której popularność stale rośnie (Survey Stackoverflow 2022). Obok Gita jest jednym z najchętniej używanych “innych narzędzi” wśród doświadczonych deweloperów:

Grafika: Stack Overflow

Na grafice widać 5 pierwszych narzędzi, które znalazły się w tym zestawieniu. Są to kolejno: Docker, npm, Yarn, Homebrew i Kubernetes. Kolejne zajęły: Terraform, Ansible i Unity 3D oraz Unreal Engine.

I nie ma się czemu dziwić, ponieważ Docker naprawdę przenosi pracę z oprogramowaniem na nowy poziom, oferując swoim użytkownikom wiele unikalnych funkcjonalności.

Dlaczego warto używać Dockera?

Poniżej przedstawiamy kilka możliwości, jakie daje Docker:

1. Jedna aplikacja, wiele środowisk i technologii

Docker jest narzędziem służącym do pakowania poszczególnych fragmentów oprogramowania w formie mniejszych jednostek (kontenerów), a każdej z tych jednostek możesz przypisać nieco inne zależności. Dzięki temu poszczególne komponenty oprogramowania mogą bez problemu być tworzone przy użyciu odmiennych technologii, a nawet języków, by potem stworzyć jeden system naczyń połączonych. Ułatwia to również późniejszą dystrybucję gotowego oprogramowania, bez problemu można stworzyć odmienne wersje aplikacji na różne środowiska.

2. Wygodne tworzenie komponentów z gotowymi zależnościami

Docker ułatwia proces tworzenia oprogramowania. Poszczególne kontenery możesz łatwo wyposażyć w domyślne zależności, dzięki temu nie musisz każdorazowo rozpisywać specyfikacji dla poszczególnych części programu, jeśli tego nie potrzebujesz. Po odpowiedniej konfiguracji, kolejne nowo tworzone kontenery będa już wyposażone w odpowiednie właściwości. Na dłuższą metę to bardzo przyśpiesza pracę.

3. Integracja z systemem operacyjnym i współdzielenie zasobów (lekkość kontenerów)

Dockerowe kontenery można łatwo zintegrować z systemem operacyjnym w taki sposób, by nie obciążać zasobów całego środowiska. Uruchamiamy tylko to, co jest w nam danej chwili potrzebne w obrębie danego kontenera, uwalniając pozostałe zasoby w systemie. Co więcej, konkretne limity zasobów mogą też być współdzielone przez wybrane grupy kontenerów.

4. Możliwość szybkiego uruchomienia całego ekosystemu mikroserwisów przy pomocy docker-compose

Kolejna funkcjonalność Dockera to nie tylko możliwość zaprojektowania całej architektury oprogramowania od zera, ale także możliwość jej sprawnego uruchomienia. Dzięki Docker Compose możesz utworzyć plik, w którym zapisana zostanie cała wielokontenerową aplikacja. Za pomocą jednego polecenia można zamknąć bądź bardzo dużą liczbę komponentów lub wygodnie je rozdzielić. Ze względu na to Docker jest rozwiązaniem chętnie wybieranym przez korporacje, które pracują na dużych systemach informatycznych.

Co ciekawe, Docker jest tak popularną platformą, że doczekał się nawet radosnej twórczości na swój temat :)

5. Kontrola nad wydajnością i zasobami

Dzięki Dockerowi możesz tworzyć “lekkie” oprogramowanie, oszczędzając zasoby. Platforma dostarcza narzędzia do monitorowania zużycia zasobów (np. CPU, RAM-u, pamięci na dysku, sieci) dla poszczególnych kontenerów lub ich grup. Docker pozwala również zarządzać cyklem życia kontenerów i całym procesem ich uruchamiania w elastyczny sposób.

6. Łatwa (naturalna) integracja z narzędziami typu Kubernetes

Nie da się ukryć, że Docker to istny “kombajn” możliwości — oferuje bardzo wiele funkcjonalności i umożliwia dzielenie systemów na wielu poziomach (kontenery to tylko jeden z nich). Nadaje się do projektowania całych architektur oprogramowania, utrzymywania aplikacji, pomocny jest nawet przy samej dystrybucji programów. Jeśli komuś jednak nadal mało, to nie ma problemu, bo Docker jest również platformą, którą łatwo zintegrować z innymi (nawet konkurencyjnymi) narzędziami, np Kubernetesem służącym do orkiestracji czyli zarządzania systemami kontenerów.

Kto korzysta z Dockera?

Docker to otwarte środowisko tworzenia aplikacji, stworzone z myślą o DevOps i programistach. Pisze o tym m.in. Oracle. Firma zwraca uwagę, że dostarczając gotowe i samodzielne kontenery aplikacji, ich twórcy mogą skoncentrować się na kodzie i zastosowaniu aplikacji bez potrzeby martwienia się o używany system operacyjny lub system wdrażania.

“Dla zespołów DevOps Docker zapewnia ciągłą integrację i rozwój oraz zmniejsza ograniczenia i złożoność architektury systemu związane z wdrożeniem aplikacji i zarządzaniem nimi. Dzięki wprowadzeniu chmurowych usług orkiestracji kontenerów każdy programista może tworzyć lokalnie aplikacje kontenerowe w swoim środowisku programistycznym, a następnie przenosić i uruchamiać te konteneryzowane aplikacje w produkcji dzięki usługom chmurowym, takim jak zarządzane usługi Kubernetes.”

A czy Ty już znasz to narzędzie? Jeśli chcesz bliżej poznać Dockera, zaglądaj na naszego bloga, wkrótce kolejne publikacje na ten temat.

Umów się na rozmowę z doradcą Kodilli