Samouczek platformy Docker - wprowadzenie do platformy Docker i kontenerowania



W tym samouczku dotyczącym platformy Docker zrozumiesz konieczność działania platformy Docker i zapoznasz się z nią. Jest to pierwszy blog z serii samouczków Docker

Mam nadzieję, że nie przegapiliście serii wcześniejszych blogów z samouczkami DevOps. Iść przez tutaj.Nieograniczony trend kontenerów Docker rośnie, a organizacje szukają profesjonalistów .Teraz tym razem przeprowadzimy Cię przez wprowadzenie do platformy Docker.

Samouczek platformy Docker

Ten blog z samouczkiem Dockera zawiera koncepcyjne i praktyczne omówienie Dockera - nowej technologii konteneryzacji wieku.





W tym blogu skupimy się na poniższych tematach:

przeciążanie funkcji w języku C ++
  • Co to jest wirtualizacja?
  • Co to jest konteneryzacja
  • Zalety kontenerowania nad wirtualizacją
  • Wprowadzenie do platformy Docker
  • Korzyści z Dockera
  • Wirtualizacja a konteneryzacja
  • Instalacja platformy Docker
  • Dockerfile, Docker Image i Docker Container
  • Co to jest Docker Hub?
  • Architektura Dockera
  • Docker Compose

Docker zyskuje na popularności, a jego użycie rozprzestrzenia się błyskawicznie. Powodem rosnącej popularności Dockera jest stopień, w jakim można go wykorzystać w organizacji IT. Bardzo niewiele narzędzi ma taką funkcjonalność, która jest przydatna zarówno dla programistów, jak i administratorów systemu. Docker jest jednym z takich narzędzi, które naprawdę spełnia swoją obietnicę Budować , Statek i Biegać .



Krótko mówiąc, Docker to platforma do kontenerowania oprogramowania, co oznacza, że ​​możesz zbudować swoją aplikację, spakować ją wraz z ich zależnościami do kontenera, a następnie te kontenery można łatwo wysłać do uruchomienia na innych maszynach.

Na przykład: Rozważmy aplikację opartą na systemie Linux, która została napisana zarówno w języku Ruby, jak i Python. Ta aplikacja wymaga określonej wersji Linuksa, Rubiego i Pythona. Aby uniknąć konfliktów wersji po stronie użytkownika, można utworzyć kontener Docker dla systemu Linux z wymaganymi wersjami Ruby i Python zainstalowanymi wraz z aplikacją. Teraz użytkownicy końcowi mogą łatwo korzystać z aplikacji, uruchamiając ten kontener bez martwienia się o zależności lub konflikty wersji.

Kontenery te korzystają z kontenerów, które można uznać za rozwiniętą wersję wirtualizacji. To samo zadanie można również wykonać za pomocą maszyn wirtualnych, jednak nie jest to zbyt wydajne.



W tym miejscu generalnie otrzymuję pytanie, tj. Jaka jest różnica między wirtualizacją a kontenerowaniem? Te dwa terminy są do siebie bardzo podobne. Pozwól, że najpierw powiem Ci, czym jest wirtualizacja?

Co to jest wirtualizacja?

Wirtualizacja to technika importowania systemu operacyjnego gościa na system operacyjny hosta. Technika ta była na początku rewelacją, ponieważ pozwoliła programistom uruchamiać wiele systemów operacyjnych na różnych maszynach wirtualnych, wszystkie działające na tym samym hoście. To wyeliminowało potrzebę dodatkowego zasobu sprzętowego. Zalety maszyn wirtualnych lub wirtualizacji to:

  • Na tym samym komputerze może działać wiele systemów operacyjnych
  • Konserwacja i naprawa były łatwe w przypadku awarii
  • Całkowity koszt posiadania był również niższy ze względu na mniejsze zapotrzebowanie na infrastrukturę

Architektura maszyny wirtualnej - samouczek Dockera o wprowadzeniu do platformy Docker - Edureka

Na diagramie po prawej stronie widać system operacyjny hosta, na którym działają 3 systemy operacyjne gościa, które są niczym innym jak maszynami wirtualnymi.

Jak wiesz, nic nie jest idealne, wirtualizacja ma również pewne wady. Uruchamianie wielu maszyn wirtualnych w tym samym systemie operacyjnym hosta prowadzi do obniżenia wydajności. Dzieje się tak z powodu systemu gościa działającego na systemie operacyjnym hosta, który będzie miał własne jądro oraz zestaw bibliotek i zależności. Zajmuje to dużą część zasobów systemowych, tj. Dysk twardy, procesor, a zwłaszcza pamięć RAM.

Innym problemem związanym z maszynami wirtualnymi korzystającymi z wirtualizacji jest to, że uruchomienie trwa prawie minutę.Jest to bardzo krytyczne w przypadku aplikacji czasu rzeczywistego.

Poniżej przedstawiono wady wirtualizacji:

  • Uruchamianie wielu maszyn wirtualnych prowadzi do niestabilnej wydajności
  • Hypervisors nie są tak wydajne jak system operacyjny hosta
  • Proces uruchamiania jest długi i zajmuje dużo czasu

Te wady doprowadziły do ​​pojawienia się nowej techniki zwanej konteneryzacją. Teraz powiem ci o konteneryzacji.

Co to jest konteneryzacja?

Konteneryzacja to technika przenoszenia wirtualizacji na poziom systemu operacyjnego. Wirtualizacja wnosi abstrakcję do sprzętu, natomiast kontenerowanie - abstrakcję do systemu operacyjnego. Zwróć uwagę, że kontenerowanie jest również rodzajem wirtualizacji. Konteneryzacja jest jednak bardziej wydajna, ponieważ nie ma tutaj systemu operacyjnego gościa i korzysta z systemu operacyjnego hosta, udostępniając odpowiednie biblioteki i zasoby w razie potrzeby w przeciwieństwie do maszyn wirtualnych. Pliki binarne specyficzne dla aplikacji i biblioteki kontenerów działają w jądrze hosta, co sprawia, że ​​przetwarzanie i wykonywanie jest bardzo szybkie. Nawet uruchomienie kontenera zajmuje tylko ułamek sekundy. Ponieważ wszystkie kontenery współużytkują, hostują system operacyjny i przechowują tylko pliki binarne i biblioteki związane z aplikacją. Są lekkie i szybsze niż maszyny wirtualne.

Zalety kontenerowania nad wirtualizacją:

  • Kontenery na tym samym jądrze systemu operacyjnego są lżejsze i mniejsze
  • Lepsze wykorzystanie zasobów w porównaniu z maszynami wirtualnymi
  • Proces uruchamiania jest krótki i zajmuje kilka sekund

Na diagramie po prawej stronie widać, że istnieje system operacyjny hosta, który jest wspólny dla wszystkich kontenerów. Kontenery zawierają tylko biblioteki specyficzne dla aplikacji, które są oddzielne dla każdego kontenera, są szybsze i nie marnują żadnych zasobów.

Wszystkie te kontenery są obsługiwane przez warstwę konteneryzacji, która nie jest natywna dla systemu operacyjnego hosta. Dlatego potrzebne jest oprogramowanie, które umożliwi tworzenie i uruchamianie kontenerów w systemie operacyjnym hosta.

Obejrzyj ten samouczek wideo dotyczący platformy Docker, aby lepiej zrozumieć platformę Docker.

Samouczek dotyczący platformy Docker dla początkujących | Co to jest Docker? | Narzędzia DevOps | Edureka

Teraz pozwól, że przeprowadzę cię przez wprowadzenie do Dockera.

Samouczek platformy Docker - wprowadzenie do platformy Docker

Docker to platforma konteneryzacyjna, która pakuje Twoją aplikację i wszystkie jej zależności razem w postaci kontenerów, aby zapewnić bezproblemowe działanie aplikacji w każdym środowisku.

Jak widać na diagramie po prawej stronie, każda aplikacja będzie działać na osobnym kontenerze i będzie miała własny zestaw bibliotek i zależności. Zapewnia to również izolację na poziomie procesu, co oznacza, że ​​każda aplikacja jest niezależna od innych aplikacji, dając programistom pewność, że mogą tworzyć aplikacje, które nie będą kolidować ze sobą.

Jako programista mogę zbudować kontener, w którym są zainstalowane różne aplikacje i przekazać go mojemu zespołowi kontroli jakości, który będzie musiał uruchomić kontener tylko w celu replikacji środowiska programistycznego.

Korzyści z Dockera

Teraz zespół ds. Kontroli jakości nie musi instalować całego zależnego oprogramowania i aplikacji, aby przetestować kod, co pomaga im zaoszczędzić mnóstwo czasu i energii. Gwarantuje to również, że środowisko pracy jest spójne dla wszystkich osób zaangażowanych w proces, począwszy od projektowania po wdrożenie. Liczbę systemów można łatwo skalować, a kod można na nich wdrożyć bez wysiłku.

Wirtualizacja a konteneryzacja

Wirtualizacja i konteneryzacja umożliwiają uruchamianie wielu systemów operacyjnych na komputerze głównym.

Wirtualizacja polega na tworzeniu wielu systemów operacyjnych na jednym komputerze głównym. Z drugiej strony, konteneryzacja utworzy wiele kontenerów dla każdego typu aplikacji, zgodnie z wymaganiami.

Postać: Co to jest analiza dużych zbiorów danych - wirtualizacja a konteneryzacja

Jak widać na obrazie, główna różnica polega na tym, że w wirtualizacji istnieje wiele systemów operacyjnych gościa, których nie ma w konteneryzacji. Najlepszą częścią kontenerowania jest to, że jest bardzo lekki w porównaniu do ciężkiej wirtualizacji.

Teraz zainstalujmy Dockera.

Zainstaluj Docker:

Zainstaluję Dockera na moim komputerze z Ubuntu 17.10. Oto kroki, aby zainstalować Docker:

  1. Zainstaluj wymagane pakiety
  2. Skonfiguruj repozytorium Dockera
  3. Zainstaluj Docker na Ubuntu

1. Zainstaluj wymagane pakiety:

Istnieją pewne pakiety, których potrzebujesz w swoim systemie do zainstalowania Dockera. Wykonaj poniższe polecenie, aby zainstalować te pakiety.

sudo apt-get install curl apt-transport-https ca-Certificates software-properties-common

2. Skonfiguruj repozytorium platformy Docker:

Teraz zaimportuj oficjalny klucz GPG Dockers, aby zweryfikować podpis pakietów przed ich zainstalowaniem za pomocą apt-get. Uruchom poniższe polecenie na terminalu:

szef kuchni vs marionetka vs ansibl
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add

Teraz dodaj repozytorium Docker w systemie Ubuntu, które zawiera pakiety Docker, w tym jego zależności, w tym celu wykonaj poniższe polecenie:

sudo add-apt-repository „deb [arch = amd64] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) stabilny”

3. Zainstaluj Docker na Ubuntu:

Teraz musisz zaktualizować apt index i zainstalować wydanie społeczności Docker, w tym celu wykonaj poniższe polecenia:

sudo apt-get update sudo apt-get install docker-ce

Gratulacje! Pomyślnie zainstalowałeś Docker. Sprawdź też kilka najczęściej używanych Docker Commands .

Spójrzmy teraz na kilka ważnych koncepcji Dockera.

Dockerfile, Docker Image i Docker Container:

  1. Obraz platformy Docker jest tworzony przez sekwencję poleceń zapisanych w pliku o nazwie Dockerfile.
  2. Gdy ten plik Dockerfile jest wykonywany przy użyciu polecenia Docker, powoduje to powstanie obrazu platformy Docker z nazwą.
  3. Gdy ten obraz jest wykonywany przez polecenie „docker run”, sam uruchamia dowolną aplikację lub usługę, którą musi uruchomić podczas wykonywania.

Docker Hub:

Docker Hub jest jak GitHub dla obrazów Docker. Jest to w zasadzie rejestr w chmurze, w którym można znaleźć obrazy Docker przesłane przez różne społeczności, a także można opracować własny obraz i przesłać go do Docker Hub, ale najpierw musisz utworzyć konto na DockerHub.

Architektura Dockera:

Składa się z Docker Engine, który jest aplikacją klient-serwer z trzema głównymi komponentami:

  1. Serwer będący rodzajem długo działającego programu nazywanego procesem demona (polecenie docker).
  2. REST API, które określa interfejsy, których programy mogą używać do komunikowania się z demonem i instruowania go, co ma robić.
  3. Klient interfejsu wiersza poleceń (CLI) (polecenie docker).
  4. Interfejs CLI używa interfejsu API REST platformy Docker do sterowania demonem platformy Docker lub interakcji z nim za pomocą skryptów lub bezpośrednich poleceń interfejsu CLI. Wiele innych aplikacji platformy Docker korzysta z podstawowego interfejsu API i interfejsu wiersza polecenia.

Odwiedź tego bloga, aby dowiedzieć się więcej .

Wreszcie w tym blogu samouczka Dockera będę mówić o Docker Compose.

Docker Compose:

Docker Compose jest zasadniczo używany do uruchamiania wielu kontenerów Docker jako jednego serwera. Dam ci przykład:

Załóżmy, że mam aplikację, która wymaga WordPress, Maria DB i PHP MyAdmin. Mogę stworzyć jeden plik, który uruchomiłby oba kontenery jako usługę bez konieczności uruchamiania każdego z nich osobno. Jest to naprawdę przydatne, zwłaszcza jeśli masz architekturę mikrousług.

Polecaj mój blog Kontener Dockera aby zrozumieć, jak wykonać to praktycznie.

Możesz również przeczytać tego bloga o tym, jak można kontenerować aplikację średniego stosu przy użyciu Docker Compose.

Tym samym kończymy pierwszy blog Docker Tutorial o wprowadzeniu do platformy Docker i konteneryzacji.

Przejdź do naszego następnego bloga na platformie Docker:

Teraz, gdy zrozumiałeś, czym jest DevOps, zapoznaj się z naszą 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 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, a my skontaktujemy się z Tobą.