Architektura Dockera: dlaczego jest ważna?



W tym blogu omówiono architekturę platformy Docker i jej różne składniki. Podkreśla funkcje dockera, co wyjaśnia powód jego popularności.

Wielu z nas uważa, że ​​Docker jest integralną częścią . Więc za tym niesamowitym narzędziem musi być niesamowita architektura. Na tym blogu omówię wszystko, co musisz wiedzieć o architekturze Dockera. Oto punkty, które będę tutaj omawiać:

  1. Tradycyjna wirtualizacja a Docker
  2. Przepływ pracy Dockera
  3. Architektura Dockera

Tradycyjna wirtualizacja kontra Docker

Co to jest maszyna wirtualna (maszyna wirtualna)?

Maszyna wirtualna to serwer wirtualny, który emuluje serwer sprzętowy. Maszyna wirtualna opiera się na fizycznym sprzęcie systemu, aby emulować dokładnie to samo środowisko, w którym instalujesz aplikacje. W zależności od przypadku użycia można użyć systemowej maszyny wirtualnej (która uruchamia cały system operacyjny jako proces, co pozwala zastąpić maszynę wirtualną rzeczywistą maszyną) lub przetwarzać maszyny wirtualne, które umożliwiają samodzielne uruchamianie aplikacji komputerowych w wirtualnym środowisko.





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.

Co to jest Docker?

Docker to projekt typu open source, który oferuje rozwiązanie programistyczne znane jako kontenery. Aby zrozumieć Docker, musisz wiedzieć, czym są kontenery. Według Doker , kontener to lekki, samodzielny, wykonywalny pakiet oprogramowania, który zawiera wszystko, co jest potrzebne do jego uruchomienia.



Kontenery są niezależne od platformy, dlatego Docker może działać zarówno na platformach Windows, jak i Linux. W rzeczywistości Docker można również uruchomić na maszynie wirtualnej, jeśli zajdzie taka potrzeba. Głównym celem Dockera jest to, że umożliwia uruchamianie aplikacji mikrousług w architekturze rozproszonej.

W porównaniu z maszynami wirtualnymi platforma Docker przenosi abstrakcję zasobów z poziomu sprzętu na poziom systemu operacyjnego. Pozwala to na realizację różnych zalet kontenerów np. przenośność aplikacji, separacja infrastruktury i niezależne mikrousługi.

Innymi słowy, podczas gdy maszyny wirtualne wyodrębniają cały serwer sprzętowy, kontenery wyodrębniają jądro systemu operacyjnego. To zupełnie inne podejście do wirtualizacji i skutkuje znacznie szybszymi i lżejszymi instancjami.



vm vs docker - architektura docker - edureka

Przepływ pracy Dockera

Najpierw przyjrzyjmy się Docker Engine i jego komponentom, abyśmy mieli podstawowe pojęcie o tym, jak działa system. Docker Engine umożliwia tworzenie, składanie, wysyłanie i uruchamianie aplikacji przy użyciu następujących komponentów:

  1. Docker Daemon : Trwały proces w tle, który zarządza obrazami platformy Docker, kontenerami, sieciami i woluminami magazynu. Demon platformy Docker stale nasłuchuje żądań interfejsu API platformy Docker i przetwarza je.

  2. Interfejs API REST aparatu Docker Engine : API jest używane przez aplikacje do interakcji z demonem Dockera. Dostęp do niego może uzyskać klient HTTP.

  3. Interfejs wiersza polecenia platformy Docker : Klient interfejsu wiersza polecenia do interakcji z demonem platformy Docker. Znacząco upraszcza zarządzanie instancjami kontenerów i jest jednym z głównych powodów, dla których programiści uwielbiają używać Dockera.

Na początku klient Docker rozmawia z demonem Docker, który wykonuje ciężkie podnoszenie budynku, uruchamianie, a także dystrybucję naszych kontenerów Docker. Zasadniczo zarówno klient Docker, jak i demon mogą działać w tym samym systemie. Możemy również podłączyć klienta Dockera dozdalny demon Dockera. Ponadto, korzystając z REST API, klienta i demona platformy Docker, komunikują się za pośrednictwem gniazd UNIX lub interfejsu sieciowego.

Architektura Dockera

Architektura platformy Docker wykorzystuje model klient-serwer i składa się z klienta Dockera, hosta platformy Docker, składników sieci i pamięci masowej oraz rejestru / centrum Docker. Przyjrzyjmy się każdemu z nich bardziej szczegółowo.

Klient Dockera

Użytkownicy platformy Docker mogą wchodzić w interakcje z platformą Docker za pośrednictwem klienta. Kiedy uruchamiane są jakiekolwiek polecenia dockera, klient wysyła je do demona dockerd, który je wykonuje. Interfejs API platformy Docker jest używany przez polecenia platformy Docker. Klient Docker może komunikować się z więcej niż jednym demonem.

Host platformy Docker

Host platformy Docker zapewnia kompletne środowisko do wykonywania i uruchamiania aplikacji. Składa się z demona platformy Docker, obrazów, kontenerów, sieci i pamięci masowej. Jak wspomniano wcześniej, demon jest odpowiedzialny za wszystkie działania związane z kontenerami i odbiera polecenia za pośrednictwem interfejsu wiersza polecenia lubREST API. Może również komunikować się z innymi demonami w celu zarządzania swoimi usługami.

Obiekty platformy Docker

1. Obrazy

Obrazy to nic innego jak szablon binarny tylko do odczytu, który może tworzyć kontenery. Zawierają również metadane opisujące możliwości i potrzeby kontenera. Obrazy służą do przechowywania i wysyłania aplikacji. Obraz może być użyty samodzielnie do zbudowania kontenera lub dostosowany w celu dodania dodatkowych elementów rozszerzających bieżącą konfigurację.

Obrazy kontenerów można udostępniać zespołom w przedsiębiorstwie za pomocą prywatnego rejestru kontenerów lub udostępniać je światu przy użyciu rejestru publicznego, takiego jak Docker Hub. Obrazy są głównym elementem środowiska Docker, ponieważ umożliwiają współpracę między programistami w sposób, który wcześniej nie był możliwy

2. Pojemniki

Kontenery to rodzaj hermetyzowanych środowisk, w których uruchamiasz aplikacje. Kontener jest definiowany przez obraz i wszelkie dodatkowe opcje konfiguracyjne dostępne podczas uruchamiania kontenera, w tym między innymi połączenia sieciowe i opcje przechowywania. Kontenery mają dostęp tylko do zasobów, które są zdefiniowane w obrazie, chyba że podczas tworzenia obrazu w kontenerze zdefiniowano dodatkowy dostęp.

Możesz także utworzyć nowy obraz na podstawie aktualnego stanu kontenera. Ponieważ kontenery są znacznie mniejsze niż maszyny wirtualne, można je odwrócić w ciągu kilku sekund i skutkować znacznie lepszą gęstością serwerów

3. Sieci

Sieć Dockera to przejście, przez które komunikują się wszystkie izolowane kontenery. W dockerze znajduje się głównie pięć sterowników sieciowych:

    1. Most : Jest to domyślny sterownik sieciowy dla kontenera. Używasz tej sieci, gdy Twoja aplikacja działa na samodzielnych kontenerach, tj. Wielu kontenerach komunikujących się z tym samym hostem Dockera.

    2. Gospodarz : Ten sterownik usuwa izolację sieci między kontenerami platformy Docker a hostem platformy Docker. Możesz go używać, gdy nie potrzebujesz żadnej izolacji sieciowej między hostem a kontenerem.

    3. Narzuta : Ta sieć umożliwia usługom roju komunikowanie się ze sobą. Używasz go, gdy chcesz, aby kontenery działały na różnych hostach Dockera lub gdy chcesz utworzyć usługi roju przez wiele aplikacji.

    4. Żaden : Ten sterownik wyłącza całą sieć.

    5. macvlan : Ten sterownik przypisuje adresy MAC do kontenerów, aby wyglądały jak urządzenia fizyczne. Kieruje ruchem między kontenerami za pośrednictwem ich adresów MAC. Używasz tej sieci, gdy chcesz, aby kontenery wyglądały jak urządzenie fizyczne, na przykład podczas migracji konfiguracji maszyny wirtualnej.

4. Przechowywanie

Możesz przechowywać dane w zapisywalnej warstwie kontenera, ale wymaga to sterownika magazynu. Będąc nietrwałym, znika, gdy kontener nie jest uruchomiony. Co więcej, nie jest łatwo przenieść te dane. Jeśli chodzi o pamięć trwałą, Docker oferuje cztery opcje:

    1. Woluminy danych : Zapewniają możliwość tworzenia trwałej pamięci masowej z możliwością zmiany nazw woluminów, wyświetlania listy woluminów, a także listy kontenerów powiązanych z wolumenem. Woluminy danych są umieszczane w systemie plików hosta, poza kontenerami kopiowanymi na mechanizm zapisu i są dość wydajne.

    2. Pojemnik objętościowy : Jest to podejście alternatywne, w którym dedykowany kontener zawiera wolumin i umożliwia zamontowanie tej objętości w innych kontenerach. W takim przypadku kontener wolumenu jest niezależny od kontenera aplikacji i dlatego można go udostępniać w więcej niż jednym kontenerze.

    3. Katalog Mounts : Inną opcją jest zamontowanie lokalnego katalogu hosta w kontenerze. We wcześniej wspomnianych przypadkach woluminy musiałyby znajdować się w folderze woluminów Dockera, podczas gdy w przypadku montowania katalogu dowolny katalog na komputerze hosta może być używany jako źródło woluminu.

    4. Wtyczki pamięci masowej : Wtyczki do przechowywania danych zapewniają możliwość łączenia się z zewnętrznymi platformami pamięci masowej. Te wtyczki odwzorowują pamięć z hosta na źródło zewnętrzne, takie jak tablica pamięci lub urządzenie. Możesz zobaczyć listę wtyczek pamięci masowej na stronie Docker's Plugin.

Rejestr Dockera

jak używać pakietów w java

Rejestry platformy Docker to usługi zapewniające lokalizacje, z których można przechowywać i pobierać obrazy. Innymi słowy, rejestr platformy Docker zawiera repozytoria platformy Docker, które obsługują co najmniej jeden obraz platformy Docker. Rejestry publiczne obejmują dwa składniki, a mianowicie Docker Hub i Docker Cloud. Możesz także skorzystać z rejestrów prywatnych. Do najczęściej używanych poleceń podczas pracy z rejestrami należą: docker push, docker pull, docker run

Teraz, gdy zrozumiałeś już architekturę Dockera, sprawdź to autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Szkolenie Edureka DevOps Certification Training pomaga uczniom zrozumieć, czym jest DevOps i zdobyć wiedzę na temat różnych procesów i narzędzi DevOps, takich jak Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack i GIT do automatyzacji wielu kroków w SDLC.

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy w tym „Architektura Dockera”, a my skontaktujemy się z Tobą