Podstawy Dockera
Docker w sporym stopniu zrewolucjonizował tworzenie środowisk dla aplikacji, wypierając rozwiązania oparte o maszyny wirtualne. Przyczyn tego stanu można się doszukiwać w zaletach Dockera.
Przede wszystkim w jego lekkości – typowe narzędzie pracy programisty to laptop a trzymanie na nim kilku środowisk wirtualnych jest dość obciążające dla każdej maszyny. Zmiana wirtualizacji na konteneryzacje rozwiązuje problem zasobów – wykorzystywane jest tylko to, co niezbędne. Ważna jest też łatwość użycia i szybkość – kilka podstawowych poleceń wystarczy by błyskawicznie zbudować środowisko do pracy dla projektu. A na dokładkę bogate źródło gotowych obrazów do pobrania. No i możliwość pracy niezależnie od systemu i środowiska, na którym pracuje Docker. W tym artykule poznamy podstawy najpopularniejszego systemu konteneryzacji. Ale po kolei, zacznijmy od podstawowych pojęć.
Co to jest Docker?
Docker jest oprogramowaniem do tworzenia odseparowanego środowiska systemu operacyjnego w tej części, która jest wymagana do działania danej aplikacji. Docker to program, który służy do budowania, wdrażania i zarządzania kontenerami z aplikacją.
Co to jest kontener (docker container)?
Kontener jest to utworzone i odseparowane środowisko dla danej aplikacji, zbudowane na podstawie obrazu (docker image). Zawierają tylko niezbędne dla uruchomionej aplikacji biblioteki i zależności – nie są ładowane pozostałe składniki systemu operacyjnego do kontenera.
Działający kontener jest procesem w systemie linux.
W dzisiejszych czasach aplikacje działają dzięki wielu elementom; frontend, backend, baza danych, biblioteki, frameworki, itd. Te wszystkie elementy zależne są od systemu operacyjnego z kolei system zależny jest od sprzętu. Różne elementy, konfiguracje i zależności powodują, że trudno aplikację przenosić i budować na różnych stanowiskach. Tu z pomocą przychodzi Docker, który przechowuje daną aplikację w tylko z jej niezbędnymi elementami w jednym odseparowanym kontenerze.
Kontenery są bardzo lekkie, pochłaniają minimalne zasoby – niezbędne do działania aplikacji. Wszystkie kontenery korzystają z jednego jądra (kernela) systemu hosta. Uruchamianie jest bardzo szybkie.
Kontener łatwo przenieść na inną maszynę i będzie działał tak samo, na każdym środowisku obsługiwanym przez Dockera, nie ma konieczności rekonfiguracji środowiska aplikacji na kolejnym systemie. Kontenery są instancjami wykonawczymi obrazów Dockera.
Co to jest plik dockera (dockerfile)?
Dockerfile jest to plik tekstowy zawierający instrukcję i polecenia niezbędne do zbudowania obrazu dockera (docker image). Docker tworzy obraz czytając informacje zawarte w tym pliku.
Własny obraz możesz zbudować jeśli nie znalazłeś odpowiedniego w repozytoriach (docker hub) lub gdy masz swoja aplikacje i chcesz ją skonteneryzować.
Co to jest obraz dockera (docker image)?
Obraz dockera jest to szablon/wzorzec, którego używa docker do tworzenia swoich kontenerów. Obrazy są przechowywane lokalnie lub w repozytorium. Jeden obraz może być użyty do utworzenia wielu kontenerów.
Obrazy możemy zbudować na podstawie pliku dockera (dockerfile)
Co to jest Docker Hub?
Jest to ogólnodostępne miejsce przechowywania obrazów dockera – repozytorium obrazów, z którego możesz pobierać obrazy i wykorzystywać je do stawiania w swoim środowisko dockera.
Docker Hub dostępny jest pod adresem https://hub.docker.com/
Co to jest kompozytor dockera (docker composer)?
Kompozytor dockera jest narzędziem do tworzenia i uruchamiania bardziej złożonego środowiska dla aplikacji pracującej na wielu kontenerach. Szczególnie przydatny w architekturze multi-serwisów. Przykład: frontend aplikacja pracuje w jednym kontenerze, backend w innym a baza danych w kolejnym kontenerze.
Te wiele kontenerów tworzone jest na podstawie pliku docker-compose.yml który zawiera listę kolejnych kontenerów, jakie mają być uruchomienie aby zbudować środowisko dla danej aplikacji . A wszystko to w czytelnym formacie YAML
Jeśli jakiekolwiek pojęcie wydaję Ci się nadal niezrozumiałe – nie przejmuj się.
Wszystko się wyklaruję, gdy zaczniesz w praktyce korzystać z Dockera 🙂
Podstawowe polecenia Dockera
docker run –name test -it ubuntu – tworzy i uruchamia kontener o nazwie test z najnowszego dostępnego obrazu z systemem Ubuntu, dodatkowy parametr zestawia połączenie z terminalem
docker help – zwraca listę dostępnych poleceń
docker version – zwraca szczegółowe informacje o zainstalowanej wersji dockera
docker info – zwraca informacje o instancji dockera
docker images – zwraca listę naszych obrazów
docker pull <nazwaObrazu> – pobiera obraz do naszego dockera
docker rm <nazwa lub id konternera> – usuwa kontener
docker rmi <nazwaObrazu> – usuwa obraz
docker ps – zwraca listę działających kontenerów
docker ps -a zwraca liste wszystkich kontenerów (również tych niedziałających)
docker run <nazwaObrazu> – uruchamia kontener na podstawie obrazu
docker start <idKonternera> – uruchamia kontener
docker stop – <idKontenera> – zatrzymuje kontener
docker system df – zwraca informacje o wykorzystaniu przestrzeni dysku przez Dockera
docker system info – wyświetla informacje o systemie hosta Dockera
docker stats – zwraca aktualne statystyki wykorzystania zasobów (procesor, pamięć) przez kontenery
docker attach <nazwaKonternera> podłączenie się do sesji działającej w kontenerze
W każdym poleceniu możesz użyć parametru help lub –help by zobaczyć składnię, dostępne opcje i parametry danego polecenia.
No dobrze. Skoro znamy już podstawowe pojęcia, to teraz pora zainstalować Dockera.
Polecane materiały: