Doker Tworzy zapakowane aplikacje nazywane pojemnikami. Każdy kontener zapewnia na białym tle środowisko podobne do maszyna wirtualna (VM). W przeciwieństwie do VMS, Docker Containers Nie prowadzisz pełnego systemu operacyjnego . Udostępniają jądro swojego hosta i wirtualizują na poziomie oprogramowania.
Podstawy dokera
Docker stał się standardowym narzędziem dla programistów i administratorów systemu. Jest to schludny sposób na szybkie uruchomienie aplikacji bez wpływu na resztę systemu. Możesz spinować nową usługę za pomocą jednego
Uruchomienie dokowca
Komenda.
Kontenery enkapsulacyjne wszystko potrzebne do uruchomienia aplikacji, z zależności od pakietów OS do własnego kodu źródłowego. Definiujesz kroki tworzenia kontenera jako instrukcje w
Dockerfile.
. Doker używa Dockerfile do konstruowania
obraz
.
Obrazy definiują oprogramowanie dostępne w kontenerach. Jest to luźno równoważny rozpoczęciu VM z systemem operacyjnym ISO. Jeśli utworzysz obraz, każdy użytkownik Docker będzie mógł uruchomić aplikację
Uruchomienie dokowca
.
Jak działa doker?
Kontenery wykorzystują cechy jądra systemu operacyjnego, aby zapewnić częściowo zwirtualizowane środowiska. Możliwe jest tworzenie pojemników od podstaw poleceń
chroot.
. Uruchamia się proces z określonym katalogiem głównym zamiast korzenia systemu. Ale korzystanie z funkcji jądra bezpośrednio jest skrzyple, niepewny i podatny na błędy.
Doker jest kompletnym rozwiązaniem do produkcji, dystrybucji i stosowania pojemników. Nowoczesne wydania dokująca składają się z kilka niezależnych elementów . Po pierwsze, jest doker Cli. , co wchodzi w interakcję w terminalu. CLI wysyła polecenia na Daceper Daemon. . Może to działać lokalnie lub na zdalnym hoście . Demon jest odpowiedzialny za zarządzanie kontenerów i obrazy są tworzone.
Końcowy składnik nazywa się Runtime pojemnika . Wykonał funkcje jądra, aby faktycznie uruchomić pojemniki. Doktor jest kompatybilny z biegaczami, które przylegają do Specyfikacja OCI. Ten otwarty standard pozwala na interoperacyjność między różnymi narzędziami kontenerowymi.
Nie musisz zbyt wiele martwić o wewnętrzne działania Dockera, gdy zaczynasz się zacząć. Instalacja
doker
W systemie da Ci wszystko, czego potrzebujesz, aby zbudować i uruchomić kontenery.
Dlaczego tak wielu ludzi używa dokera?
Kontenery stały się tak popularne, ponieważ rozwiążą wiele wspólnych wyzwań w rozwoju oprogramowania. Umiejętność połączania się raz na wszędzie Zmniejsza różnicę między Twoje środowisko programistyczne i Twoje serwery produkcyjne.
Za pomocą kontenerów zapewnia pewność siebie, że każde środowisko jest identyczne. Jeśli masz nowego członka zespołu, tylko muszą
Uruchomienie dokowca
Aby utworzyć własną instancję rozwoju. Po uruchomieniu usługi możesz użyć obrazu dokującego, aby wdrożyć produkcję. ten
Środowisko na żywo
dokładnie pasuje do Twojej lokalnej instancji, unikając "Działa na moich maszynach" scenariusze.
Doktor jest wygodniejszy niż pełna maszyna wirtualna. VMS to narzędzia ogólnego przeznaczenia mające na celu wspieranie każdego możliwego obciążenia pracą. Natomiast kontenery są lekkie, samowystarczalne, a lepiej nadaje się do wyrzucania przypadków użytkowania. Jako dokujący dzieli się jądro gospodarza, pojemniki mają znikomy wpływ na wydajność systemu. Czas uruchomienia pojemnika jest prawie natychmiastowy, jak tylko rozpoczynasz procesy, a nie cały system operacyjny.
Pierwsze kroki
Doker jest dostępny na wszystkich popularnych rozkładach Linuksa. Działa również na systemie Windows i MacO. Podążaj za Instrukcje konfiguracji dokera dla platformy zdobyć go i uruchomić.
Możesz sprawdzić, czy instalacja działa rozpoczął prosty pojemnik:
Docker Run Hello-World
Spowoduje to uruchomienie nowego kontenera z podstawowym
Witaj świecie
obraz. Obraz emituje pewne wyjście wyjaśniające, jak korzystać z dokera. Pojemnik wychodzi, z powrotem z powrotem do terminalu.
Tworzenie zdjęć
Po uruchomieniu
Witaj świecie
, jesteś gotowy stworzyć własne obrazy dokujące. Dockerfile opisuje, jak uruchomić usługę
Instalowanie wymaganego oprogramowania.
i kopiowanie w plikach. Oto prosty przykład za pomocą serwera WWW Apache:
Z httpd: najnowsze Run Echo "Nagłówki LoadModule Headers_modules / Mod_headers.SO" & GT; & GT; /Usr/local/apache2/conf/httpd.conf.conf. Kopiuj .htaccess /var/www/html/.htaccess. Kopiuj index.html /var/www/html/index.html. Kopiuj CSS / VAR / WWW / HTML / CSS
ten
Z
Linia definiuje obraz podstawowy. W takim przypadku zaczynamy od oficjalnego obrazu Apache. Dokier ma zastosowanie pozostałych instrukcji w Dockerfile na górnej części podstawy.
ten
BIEGAĆ
Etap działa polecenie w pojemniku. Może to być dowolne polecenie dostępne w środowisku kontenera. Włączamy
nagłówki
Moduł Apache, który może być używany przez
.htaccess.
Plik, aby skonfigurować reguły routingu.
Ostateczne linie skopiują pliki HTML i CSS w katalogu roboczym na obraz kontenera. Twój obraz zawiera teraz wszystko, co musisz uruchomić swoją stronę.
Teraz możesz zbudować obraz:
Docker Build -T My-Website: V1.
Docker użyje swojego DockerFile do skonstruowania obrazu. Zobaczysz wyjście w terminalu, ponieważ Docker uruchamia każdą instrukcję.
ten
-T
W poleceniu
Tagi Twój obraz
z daną nazwą (
My-Website: V1
). To ułatwia odniesienie do przyszłości. Tagi mają dwa elementy, oddzielone dwukropkiem. Pierwsza część ustawia nazwę obrazu, podczas gdy drugi zazwyczaj oznacza swoją wersję. Jeśli pominiesz okrężnicę, doker zostanie domyślny
używać
najnowszy
jako wersja znacznika.
ten
.
Na końcu polecenia mówi dokerowi korzystanie z DockerFile w lokalnym katalogu roboczym. To także
Ustawia kontekst budowy
, umożliwiając używanie plików i folderów w katalogu roboczym
KOPIUJ
instrukcje w dnakerfile.
Po utworzeniu obrazu możesz uruchomić kontener za pomocą
Uruchomienie dokowca
:
Dokument Run -D -P 8080: 80 My-Website: V1
Używamy kilku dodatkowych flag
Uruchomienie dokowca
tutaj. ten
-D
Flaga sprawia, że Docker Cli odłącza się od kontenera, umożliwiając mu uruchomienie w tle. Mapowanie portu jest zdefiniowane
-P
, Więc Port 8080 na mapach hostów do Port 80 w pojemniku. Jeśli odwiedzasz stronę internetową
LocalHost: 8080.
W Twojej przeglądarce.
Obrazy dokująca są tworzone z warstw. Każda instrukcja w Dockerfile tworzy nową warstwę. Możesz użyć zaawansowanych funkcji budowlanych Odniesienie wielu obrazów bazowych , Odrzucając warstwy pośrednie z wcześniejszych obrazów.
Rejestry obrazów
Gdy masz obraz, możesz go wypychać do rejestru. Rejestry Zapewnij scentralizowaną pamięć. aby można było dzielić pojemniki z innymi. Domyślny rejestr jest Hub Docker. .
Po uruchomieniu polecenia odnosi się do obrazu, Docker najpierw sprawdza, czy jest dostępny lokalnie. Jeśli tak nie, spróbuje wyciągnąć go z piasta dokującego. Możesz ręcznie wyciągnąć obrazy za pomocą
Docker Pull.
Komenda:
Docker Pull Httpd: Najnowsze
Jeśli chcesz opublikować obraz, utwórz
Hub Docker.
konto. Biegać
Docker Login.
i wprowadź nazwę użytkownika i hasło.
Następnie oznacz swój obraz za pomocą nazwy użytkownika Docker Hub:
Docker Tag My-Image: Najnowsza Docker-Hub-Nazwa użytkownika / My-Image: Najnowsze
Teraz możesz nacisnąć obraz:
Docker Push Docker-Nazwa użytkownika / My-Image: Najnowsze
Inni użytkownicy będą mogli wyciągnąć swój obraz i rozpocząć pojemniki z nim.
Możesz Uruchom własny rejestr Jeśli potrzebujesz prywatnego przechowywania obrazu. Kilka usług innych firm Oferuj rejestry dokowców. jako alternatywy dla piasty do dokera.
Zarządzanie koncentrantami
Docker CLI ma kilka poleceń, aby poradzić sobie z kontenerami prowadzącymi. Oto niektóre z najbardziej przydatnych, aby wiedzieć:
Listowanie pojemników
Docker PS.
Pokazuje wszystkie swoje pojemniki do biegania. Dodanie
-a
Flaga również pokaże zatrzymane pojemniki.
Zatrzymywanie i pojemniki startowe
Aby zatrzymać pojemnik, uruchom
Doker zatrzymuje mój pojemnik
. Zastępować
My-Container.
z nazwą kontenera lub identyfikatorem. Możesz uzyskać te informacje od
ps.
Komenda. Został ponownie uruchomiony pojemnik
Doktor start My-Container
.
Pojemniki zwykle biegają tak długo, jak ich główny proces pozostaje żywy.
Uruchom ponownie zasady
Kontroluj, co się dzieje, gdy pojemnik zatrzymuje się lub uruchamia się hosta. Przechodzić
--Restart zawsze.
do
Uruchomienie dokowca
Aby natychmiast uruchomić się pojemnik natychmiast po zatrzymaniu.
Dostanie muszli
Możesz
uruchom polecenie
kontener za pomocą
Docker Exec my-Container My-Command
. Jest to przydatne, gdy chcesz ręcznie wywołać plik wykonywalny oddzielny do głównego procesu kontenera.
Dodaj
-to
Flaga Jeśli potrzebujesz interaktywnego dostępu. Pozwala to upuścić w skorupę, biegając
Docker Exec -it My-Container Sh
.
Logi monitorujące
Docker automatycznie zbiera wyjście emitowane do standardowego wejścia i wyjścia kontenera. ten
Doktor loguje mój kontener
Polecenie pokaże dzienniki kontenera w terminalu. ten
--śledzić
Flaga ustawia ciągły strumień, dzięki czemu można wyświetlić dzienniki w czasie rzeczywistym.
Sprzątanie zasobów
Stare pojemniki i obrazy mogą szybko gromadzić się w systemie. Posługiwać się
Docker RM My-Container
aby usunąć pojemnik według swojego identyfikatora lub nazwy.
Polecenie dla obrazów jest
Docker RMI My-Image: Najnowsze
. Przekazać identyfikator obrazu lub pełną nazwę znacznika. Jeśli określisz znacznik, obraz nie zostanie usunięty, dopóki nie ma przypisanych znaczników. W przeciwnym razie podany znacznik zostanie usunięty, ale inne znaczniki obrazu pozostaną użyteczne.
Czyszczenie masowe są możliwe przy użyciu
Docker Crune.
Komenda
. Daje to łatwy sposób na usunięcie wszystkich zatrzymanych pojemników i redundantnych obrazów.
Zarządzanie graficzne
Jeśli terminal nie jest twoją rzecz, możesz użyć narzędzi innych firm Ustaw graficzny interfejs do dokera . Daszynki sieciowe pozwalają szybko monitorować i zarządzać instalacją. Pomagają również zrobić zdalne sterowanie kontenerami.
Trwałe przechowywanie danych.
Domyślnie kontenery dokująca są efemeryczne. Zmiany dokonane w systemie plików kontenera nie będą się utrzymywać po zatrzymaniu pojemnika. To nie jest bezpieczne
Uruchom dowolną formę systemu przechowywania plików
W pojemniku rozpoczął się od podstawowego
Uruchomienie dokowca
Komenda.
Jest kilka różnych podejść do Zarządzanie trwałymi danymi . Najczęstszym jest użycie objętości dokującej. Wolumeny to jednostki magazynowe które są zamontowane w systemie plików kontenerowych. Wszelkie dane w objętości pozostaną nienaruszone po zatrzymaniu jego połączonego kontenera, pozwalając podłączyć inny pojemnik w przyszłości.
Utrzymywanie bezpieczeństwa
Dockerized obciążenia mogą być bezpieczniejsze niż ich odpowiedniki gołe metalowe, ponieważ Docker zapewnia pewne separacja pomiędzy systemem operacyjnym a usługami. Niemniej jednak Docker jest potencjalnym problemem bezpieczeństwa, jak to
normalnie działa AS.
źródło
i można je wykorzystać, aby uruchomić złośliwe oprogramowanie.
Jeśli prowadzisz Docker jako narzędzie do rozwoju, domyślna instalacja jest ogólnie bezpieczna w użyciu. Serwery produkcyjne i maszyny z odsłoniętym siecią Daemon Gniazdo powinny być utwardzane przed życiem.
Audyt instalacji dokującej zidentyfikować potencjalne problemy z bezpieczeństwem. Są Dostępne zautomatyzowane narzędzia To może pomóc w znalezieniu słabości i sugerować rezolucje. Możesz także Skanuj pojedyncze obrazy kontenera W przypadku problemów, które można wykorzystać z wewnątrz.
Praca z wieloma pojemnikami
ten
doker
Polecenie działa tylko z jednym pojemnikiem na raz. Często chcesz używać kontenerów w kruszywie.
Skomponować doker
to narzędzie, które umożliwia zdefiniowanie kontenerów deklaratywnie w pliku YAML. Możesz uruchomić je wszystkie komendy.
Jest to pomocne, gdy twój projekt zależy od innych usług, takich jak zaplecze internetowe, które opiera się na serwerze bazy danych. Możesz zdefiniować oba pojemniki w swoim
Docker-Compose.yml.
i korzystać z usprawnionych zarządzania
Automatyczne sieciowe
.
Oto proste
Docker-Compose.yml.
plik:
Wersja: "3"
Usługi:
Aplikacja:
Obraz: serwer aplikacji: najnowszy
Porty:
- 8000: 80
Baza danych:
Obraz: serwer bazy danych: najnowszy
wolumeny:
- Dane bazy danych: / Dane
wolumeny:
Dane bazy danych:
Definiuje to dwa pojemniki (
aplikacja
oraz
Baza danych
). Głośność jest tworzona dla bazy danych. To zostanie zamontowane
/dane
w pojemniku. Port 80 serwera aplikacji jest odsłonięty jako 8000 na hoście. Biegać
Docker-Compose Up -d
Aby spinować zarówno usługi, w tym sieć i objętość.
Wykorzystanie kompozycji dokowca pozwala Ci
Napisz wielokrotnego użytku
Definicje kontenerów, które można podzielić się z innymi. Możesz popełnić
Docker-Compose.yml.
do sterowania wersją zamiast posiadania programistów zapamiętanych
Uruchomienie dokowca
polecenia.
Istnieją również inne podejścia do prowadzenia wielu kontenerów. Aplikacja Docker jest pojawiające się rozwiązanie, które zapewnia kolejny poziom abstrakcji. Gdzie indziej w ekosystemie, Podman jest alternatywą dokującą To pozwala tworzyć "strąki" pojemników w terminalu.
Kontenerowa orkiestracja
Docker nie jest normalnie uruchamiany jako produkcja. Teraz częściej stosuje platformę orkiestracyjną, takimi jak Kubernetes. lub tryb sharmu dokującego. Te narzędzia są przeznaczone do obsługi wielokrotne repliki kontenerów, co poprawia skalowalność i niezawodność.
Doker jest tylko jednym komponentem w szerszym ruchu kontenerii. Orchestratory
wykorzystać to samo
Kontenerowi technologie środowiska wykonawczego, aby zapewnić środowisko, które jest lepsze dopasowanie do produkcji. Korzystanie z wielu instancji kontenerów
Pozwala na toczenia aktualizacji
Jak również dystrybucja w maszynach, dzięki czemu wdrożenie bardziej odporne na zmianę i przestój. Regularny
doker
CLI celuje jeden gospodarz i współpracuje z indywidualnymi pojemnikami.
Potężna platforma do kontenerów
Doker daje ci wszystko, czego potrzebujesz do pracy z kontenerami. Stało się kluczowym narzędziem do rozwoju oprogramowania i administracji systemowej. Główne korzyści są zwiększone izolacji i przenośności dla indywidualnych usług.
Zapoznanie się z dokerem wymaga zrozumienia podstawowego kontenera i koncepcji obrazu. Możesz zastosować je, aby utworzyć wyspecjalizowane obrazy i środowiska, które kontenerują obciążenia.