Zapoznajmy się z architekturą platformy Docker i jej podstawowymi komponentami.
Zakładam, że masz podstawową wiedzę na temat Dockera. Jeśli nie, możesz zapoznać się z tym poprzednim artykułem.
Wierzę, że rozumiesz znaczenie platformy Docker w DevOps. Teraz za tym fantastycznym narzędziem kryje się niesamowita, dobrze przemyślana architektura. Prawda?
Ale zanim o tym opowiem, pozwólcie, że przedstawię poprzednie i obecne systemy wirtualizacji.
Spis treści:
Wirtualizacja tradycyjna a wirtualizacja nowej generacji
Wcześniej tworzyliśmy maszyny wirtualne, a każda maszyna wirtualna miała system operacyjny, który zajmował dużo miejsca i sprawiał, że był ciężki.
Teraz w przypadku kontenera docker, masz jeden system operacyjny, a zasoby są dzielone między kontenerami. Dzięki temu jest lekki i buty w kilka sekund.
Architektura Dockera
Poniżej znajduje się prosty schemat architektury platformy Docker.
Pozwól, że wyjaśnię Ci składniki architektury dockera.
Silnik Dockera
Jest to podstawowa część całego systemu Docker. Docker Engine to aplikacja działająca w architekturze klient-serwer. Jest zainstalowany na komputerze głównym. Silnik Docker Engine składa się z trzech komponentów:
- Serwer: jest to demon dockera o nazwie dockerd. Może tworzyć i zarządzać obrazami dokowanymi. Kontenery, sieci itp.
- Rest API: Służy do instruowania demona dockera, co ma robić.
- Interfejs wiersza poleceń (CLI): Jest to klient, który służy do wprowadzania poleceń dockera.
Klient Dockera
Użytkownicy platformy Docker mogą wchodzić w interakcje z platformą Docker za pośrednictwem klienta. Po uruchomieniu dowolnych poleceń docker klient wysyła je do demona dockerd, który je wykonuje. Docker API jest używany przez polecenia Dockera. Klient Docker może komunikować się z więcej niż jednym demonem.
Rejestry Dockera
Jest to lokalizacja, w której przechowywane są obrazy Dockera. Może to być publiczny rejestr dockera lub prywatny rejestr dockera. Docker Hub jest domyślnym miejscem obrazów dockera, publicznym rejestrem jego sklepów. Możesz także stworzyć i uruchomić własny prywatny rejestr.
Podczas wykonywania poleceń docker pull lub docker run wymagany obraz docker jest pobierany ze skonfigurowanego rejestru. Po wykonaniu polecenia docker push obraz docker jest przechowywany w skonfigurowanym rejestrze.
Obiekty dokowane
Podczas pracy z Dockerem używasz obrazów, kontenerów, woluminów, sieci; wszystko to są obiekty Docker.
Obrazy
Obrazy platformy Docker to szablony tylko do odczytu z instrukcjami tworzenia kontenera platformy Docker. Obraz platformy Docker można pobrać z centrum platformy Docker i używać go bez zmian lub dodać dodatkowe instrukcje do obrazu podstawowego i utworzyć nowy i zmodyfikowany obraz platformy Docker. Możesz tworzyć własne obrazy dokowane również za pomocą pliku docker. Utwórz plik docker ze wszystkimi instrukcjami tworzenia kontenera i uruchomienia go; utworzy niestandardowy obraz okna dokowanego.
Obraz Dockera ma warstwę podstawową, która jest tylko do odczytu, a górną warstwę można zapisywać. Kiedy edytujesz plik docker i przebudowujesz go, tylko zmodyfikowana część jest przebudowywana w górnej warstwie.
Kontenery
Po uruchomieniu obrazu okna dokowanego tworzy on kontener okna dokowanego. Wszystkie aplikacje i ich środowisko działają w tym kontenerze. Możesz użyć Docker API lub CLI do uruchamiania, zatrzymywania, usuwania kontenera dockera.
Poniżej znajduje się przykładowe polecenie do uruchomienia kontenera dockera ubuntu:
docker run -i -t ubuntu /bin/bash
Wolumeny
Trwałe dane generowane przez platformę Docker i używane przez kontenery platformy Docker są przechowywane w woluminach. Są one całkowicie zarządzane przez docker za pośrednictwem docker CLI lub Docker API. Woluminy działają zarówno w kontenerach Windows, jak i Linux. Zamiast utrwalać dane w zapisywalnej warstwie kontenera, zawsze dobrym rozwiązaniem jest użycie do tego woluminów. Zawartość woluminu istnieje poza cyklem życia kontenera, więc użycie woluminu nie zwiększa rozmiaru kontenera.
Aby uruchomić kontener z woluminem, można użyć flagi -v lub –mount. W tym przykładowym poleceniu używasz woluminu geekvolume z kontenerem newsblog.pl.
docker run -d --name newsblog.pl -v geekvolume:/app nginx:latest
Sieci
Sieć Docker to przejście, przez które komunikują się wszystkie izolowane kontenery. W dockerze jest głównie pięć sterowników sieciowych:
Wniosek
Mam nadzieję, że daje to pojęcie o architekturze Dockera i jej podstawowych komponentach. Poruszaj się po Dockerze, aby dowiedzieć się więcej, a jeśli jesteś zainteresowany praktycznym szkoleniem, sprawdź to Kurs Docker Mastery.
Podobał Ci się artykuł? Co powiesz na dzielenie się ze światem?