Samouczek Dockera dla początkujących: Podstawy, Architecture, Kontenery

Co to jest Docker?

Doker to platforma programistyczna do tworzenia oprogramowania do wirtualizacji z wieloma Operasystemy działające na tym samym hoście. Pomaga oddzielić infrastrukturę i aplikacje w celu szybkiego dostarczania oprogramowania. W przeciwieństwie do Hypervisorów, które służą do tworzenia VM (maszyn wirtualnych), wirtualizacja w Dockerze odbywa się na poziomie systemu, zwanym także kontenerami Docker.

Jak widać różnicę na poniższym obrazku, kontenery Docker działają na wierzchu hosta Operasystem cyjny. Pomaga to poprawić wydajność i bezpieczeństwo. Co więcej, w tej samej infrastrukturze możemy uruchomić więcej kontenerów niż maszyn wirtualnych, ponieważ kontenery zużywają mniej zasobów.

Wirtualizacja w Dockerze vs Hypervisor
Wirtualizacja w Dockerze vs Hypervisor

W przeciwieństwie do maszyn wirtualnych, które mogą komunikować się ze sprzętem hosta (np. adapter Ethernet do tworzenia większej liczby adapterów wirtualnych), kontenery Docker działają w izolowanym środowisku na systemie operacyjnym hosta. Nawet jeśli Twój host działa Windows OS, możesz mieć obrazy Linuksa działające w kontenerach za pomocą Hyper-V, który automatycznie tworzy małą maszynę wirtualną w celu wirtualizacji podstawowego obrazu systemu, w tym przypadku Linux.

Dlaczego warto używać Dockera?

  • Docker to oprogramowanie komputerowe służące do wirtualizacji w celu uzyskania wielu Operasystemy tingu działa na tym samym hoście
  • Docker to aplikacja typu klient-serwer, co oznacza, że ​​mamy klientów, którzy przekazują dane do serwera
  • Obrazy Dockera to „kod źródłowy” naszych kontenerów; używamy ich do budowania
  • Dockerfile ma dwa typy rejestrów: 1.) rejestry publiczne i 2)prywatne
  • Kontenery to jednostki organizacyjne wolumenu Dockera. Mówiąc prościej, obraz jest szablonem, a kontener jest kopią tego szablonu. Możesz mieć wiele kontenerów (kopii) tego samego obrazu.

Doker Architektura

Teraz, w tym samouczku dotyczącym kontenera Docker, porozmawiajmy o głównych komponentach Dockera w Dockerze Archistruktura:

Doker Architektura
Doker Architektura

Silnik Dockera

Docker to aplikacja typu klient-serwer, co oznacza, że ​​mamy klientów, którzy przekazują dane do serwera. Zatem demon Dockera o nazwie: dockerd to silnik Dockera reprezentujący serwer. Demon dokujący i klienci mogą działać na tym samym lub zdalnym hoście i komunikują się za pomocą pliku binarnego klienta wiersza poleceń, a także pełnego RESTful API do interakcji z demonem: dockerd.

Obrazy Dockera

Obrazy Dockera to „kod źródłowy” naszych kontenerów; używamy ich do budowy kontenerów. Mogą mieć preinstalowane oprogramowanie, co przyspiesza wdrożenie. Są przenośne i możemy wykorzystać istniejące obrazy lub zbudować własne.

Rejestry Dockera

Docker przechowuje obrazy, które budujemy w rejestrach. Istnieją rejestry publiczne i prywatne. Firma Docker ma rejestr publiczny o nazwie Centrum Dockera, gdzie możesz także przechowywać obrazy prywatnie. Docker Hub zawiera miliony obrazów, z których możesz zacząć korzystać już teraz.

Docker Containers

Kontenery to jednostki organizacyjne i jedna z podstawowych koncepcji Dockera. Kiedy budujemy obraz i zaczynamy go uruchamiać; pracujemy w kontenerze. Analogię kontenera stosujemy ze względu na przenośność oprogramowania, które uruchamiamy w naszym kontenerze. Możemy go przenieść, czyli „wysłać” oprogramowanie, zmodyfikować, zarządzać, stworzyć lub się go pozbyć, zniszczyć, tak jak statki towarowe potrafią to zrobić z prawdziwymi kontenerami.

Mówiąc prościej, obraz jest szablonem, a kontener jest kopią tego szablonu. Możesz mieć wiele kontenerów (kopii) tego samego obrazu.

Poniżej mamy obraz, który doskonale przedstawia interakcję pomiędzy różnymi komponentami i działanie technologii kontenerów Docker.

Mamy kilka poleceń dockera: docker pull, docker run... porozmawiamy o tym później.

Jak zainstalować Dockera na Linuksie/Ubuntu

Poniżej znajduje się krok po kroku proces instalacji Dockera w systemie Linux/Ubuntu:

Krok 1) Aby zainstalować Dockera, musimy skorzystać z pakietów DEB zespołu Docker.

W tym celu pewien warunek wstępny Ubuntu wymagane są pakiety.

Użyj poniższego polecenia, aby zainstalować Ubuntu Pakiety

$ sudo apt-get install \
apt-transport-https \
ca-certificates curl \
software-properties-common

*znak „\” nie jest konieczny, jest używany w nowej linii, jeśli chcesz, możesz wpisać polecenie bez użycia „\” tylko w jednej linii.

Krok 2) Dodaj oficjalny klucz Docker GPG z odciskiem palca.

Użyj poniższego polecenia Dockera, aby wprowadzić klucz GPG

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Krok 3) Następnie dodaj repozytorium Docker APT.

Użyj poniższego polecenia Dockera, aby dodać repozytorium

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

Możesz zostać poproszony o potwierdzenie, że chcesz dodać repozytorium i aby klucz GPG został automatycznie dodany do Twojego hosta.

Komenda lsb_release powinna wypełnić plik Ubuntu dystrybucyjna wersja Twojego hosta.

Krok 4) Po dodaniu klucza GPG,

Zaktualizuj źródła APT za pomocą poniższego polecenia Docker

$ sudo apt-get update

Możemy teraz zainstalować sam pakiet Docker.

Krok 5) Po zaktualizowaniu źródeł APT,

Rozpocznij instalację pakietów Docker na Ubuntu za pomocą poniższego polecenia Docker

$ sudo apt-get install docker-ce

Powyższe polecenie instaluje Dockera i inne dodatkowe wymagane pakiety. Przed Dockerem 1.8.0 nazwa pakietu brzmiała lxc-docker, a pomiędzy Dockerem 1.8 a 1.13 nazwą pakietu była docker-engine.

UWAGA: Doker dla Windows Wymaga Windows 10 Pro lub Enterprise wersja 14393 lub Windows serwer 2016 RTM do uruchomienia

Jak korzystać z Dockera przy użyciu podstawowych poleceń Dockera

Oto jak używać Dockera za pomocą podstawowych poleceń Dockera:

Najbardziej podstawowym poleceniem, które musimy uruchomić po zainstalowaniu Dockera, jest $ docker info, jak powiedzieliśmy wcześniej.

$ sudo docker info

Powinieneś otrzymać podobny lub następujący wynik

Używaj Dockera, używając podstawowych poleceń Dockera

Jak widać na powyższym przykładzie Dockera, mamy informację o kontenerach Dockera, ile jest uruchomionych, wstrzymanych lub zatrzymanych oraz ile obrazów pobraliśmy. Przejdźmy więc do pierwszego obrazu w tym samouczku dotyczącym poleceń Dockera.

$ sudo docker pull alpine

Za pomocą tego polecenia mówimy dokerowi, aby pobrał obraz alpine i pobrał go z rejestru publicznego, najnowszą wersję, która jest ustawiona domyślnie.

*alpine to minimalny obraz Dockera oparty na Alpine Linux z pełnym indeksem pakietów i wielkością tylko 5 MB.

Jeśli chcemy uruchomić obraz jako kontener, użyjemy poniższego polecenia w tym przewodniku po samouczku Docker.

$ sudo docker run -i -t alpine /bin/bash

Jeśli uruchomimy polecenie, zostaniemy wysłani bezpośrednio do terminala Alpine. Flaga -i utrzymuje STDIN otwarty z kontenera, nawet jeśli nie jesteś do niego podłączony. To trwałe standardowe wejście stanowi połowę tego, czego potrzebujesz w przypadku interaktywnej powłoki. Flaga -t to druga połowa, która instruuje Dockera, aby przypisał pseudo-tty do kontenera. Dzięki temu mamy interaktywną powłokę w nowym kontenerze. Wychodzimy z kontenera za pomocą prostego polecenia exit.

Teraz, w tym samouczku dotyczącym podstaw platformy Docker, możemy spróbować uruchomić plik Ubuntu obraz.

$ sudo docker run -it ubuntu /bin/bash

Możesz zauważyć, że okno dokowane sprawdza lokalnie obraz, a jeśli go tam nie ma, obraz jest automatycznie pobierany z biblioteki obrazów i ponownie mamy uruchomioną interaktywną powłokę. Możemy także nazwać kontenery w trakcie ich uruchamiania.

$ sudo docker run –-name our_container -it ubuntu /bin/bash

i znowu wychodzimy.

Możemy także uruchomić utworzony wcześniej kontener, bez interaktywnej powłoki.

$ sudo docker start container_name

I zatrzymaj zapisywanie kontenera w oknie dokowanym nazwa_kontenera

$ sudo docker stop container_name

Jeśli chcemy zobaczyć wszystkie działające kontenery, po prostu uruchamiamy

$ docker ps

Do wszystkich kontenerów dodajemy „- a” na końcu tego samego polecenia, tak jak w tym oknie dokowanym ps -a.

To polecenie pokazuje identyfikator kontenera, używany obraz podczas tworzenia, status działania, odsłonięte porty i losowo wygenerowaną nazwę kontenera, aby ułatwić zarządzanie.

Uruchamiając kontenery chcielibyśmy także wiedzieć ile zasobów zużywają, w tym celu możemy posłużyć się poleceniem.

$ docker stats

Możesz także zobaczyć, które obrazy pobraliśmy lokalnie i uzyskać o nich informacje.

$ sudo docker images

Polecenie w powyższym przykładzie Dockera wyświetla obraz Dockera ze znacznikiem, który pokazuje wersję naszego obrazu, charakterystyczny identyfikator obrazu, datę utworzenia i rozmiar obrazu.

Co to jest wirtualizacja?

Wcześniej proces wdrażania usługi był powolny i bolesny. Najpierw programiści pisali kod; następnie zespół operacyjny wdrażał go na maszynach typu bare metal, gdzie musieli szukać wersji bibliotek, poprawek i kompilatorów języka, aby kod działał. Jeśli były jakieś błędy lub usterki, proces zaczynał się od nowa, programiści je naprawiali, a następnie ponownie zespół operacyjny był tam, aby wdrożyć.

Nastąpiła poprawa dzięki utworzeniu hiperwizorów. Hypervisory mają wiele Wirtualne maszyny lub maszyny wirtualne na tym samym hoście, które mogą być uruchomione lub wyłączone. Maszyny wirtualne znacznie skróciły czas oczekiwania na wdrożenie kodu i naprawienie błędów, ale prawdziwą zmianą były kontenery Docker.

Ważne polecenia Dockera

Poniżej znajdują się ważne polecenia Dockera:

Command Opis
informacje o oknie dokowanym Komenda Informacyjna
ściąganie dokera Pobierz obraz
okno dokowane -i -t nazwa_obrazu /bin/bash Uruchom obraz jako kontener
okno dokowane uruchamia nasz_kontener Uruchom kontener
przystanek dokowany nazwa_kontenera Zatrzymaj pojemnik
docker ps Lista wszystkich działających kontenerów
statystyki dokera Informacje o kontenerze
obrazy doków Lista pobranych obrazów
Oczyszczanie Dockera Zabij wszystkie działające kontenery.

Przeczytaj także Pytania i odpowiedzi dotyczące rozmowy kwalifikacyjnej Docker zarówno dla początkujących, jak i doświadczonych profesjonalistów.

Podsumowanie

  • Docker to platforma programistyczna do tworzenia oprogramowania do wirtualizacji z wieloma Operasystemy działające na tym samym hoście. Pomaga oddzielić infrastrukturę i aplikacje w celu szybkiego dostarczania oprogramowania.
  • Doker Archistruktura: Silnik Dockera, obrazy Dockera, rejestry Dockera, kontenery Dockera.
  • Silnik Dockera: Docker to aplikacja typu klient-serwer, co oznacza, że ​​mamy klientów, którzy przekazują dane do serwera. Zatem demon Dockera o nazwie: dockerd to silnik Dockera reprezentujący serwer.
  • Obrazy Dockera: Obrazy Dockera to „kod źródłowy” naszych kontenerów; używamy ich do budowy kontenerów. Mogą mieć preinstalowane oprogramowanie, co przyspiesza wdrożenie. Są przenośne i możemy wykorzystać istniejące obrazy lub zbudować własne.
  • Rejestry Dockera: Docker przechowuje obrazy, które budujemy w rejestrach. Istnieją rejestry publiczne i prywatne. Firma Docker posiada publiczny rejestr zwany Docker Hub, w którym można również przechowywać obrazy prywatnie. Docker Hub zawiera miliony obrazów, z których możesz zacząć korzystać już teraz.
  • Kontenery Docker: Kontenery to jednostki organizacyjne i jedna z podstawowych koncepcji Dockera. Kiedy budujemy obraz i zaczynamy go uruchamiać; pracujemy w kontenerze. Analogię do kontenera stosujemy ze względu na przenośność oprogramowania, które działa w naszym kontenerze.