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.

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:

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
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.