logo

Co to jest Docker?

Docker to zestaw produktów typu Platforms as a Service (PaaS), które korzystają z wirtualizacji na poziomie systemu operacyjnego w celu dostarczania oprogramowania w pakietach zwanych kontenerami. Kontenery są odizolowane od siebie i zawierają własne oprogramowanie, biblioteki i pliki konfiguracyjne; mogą komunikować się ze sobą za pośrednictwem dobrze zdefiniowanych kanałów. Wszystkie kontenery są uruchamiane przez jedno jądro systemu operacyjnego i dlatego zużywają mniej zasobów niż maszyna wirtualna.

Spis treści

Co to jest Docker?

Doker jest oprogramowaniem typu open source konteneryzacja platforma, dzięki której możesz spakować swoją aplikację i wszystkie jej zależności do standardowej jednostki zwanej kontenerem. Kontenery są lekkie, co czyni je przenośnymi i odizolowane od podstawowej infrastruktury i od siebie nawzajem. Możesz uruchomić obraz okna dokowanego jak kontener dokujący na dowolnej maszynie, na której zainstalowano okno dokowane, bez zależności od system operacyjny.



Docker zyskał popularność dzięki wpływowi na rozwój i wdrażanie oprogramowania. Oto niektóre z głównych powodów, dla których doker staje się popularny:

  1. Ruchliwość: Docker ułatwia programistom pakowanie aplikacji ze wszystkimi zależnościami w jeden lekki kontener. Umożliwia zapewnienie spójnej wydajności w różnych środowiskach komputerowych.
  2. Powtarzalność: Hermetyzowanie aplikacji wraz z ich zależnościami w kontenerze zapewnia spójność konfiguracji oprogramowania w środowiskach programistycznych, testowych i produkcyjnych.
  3. Efektywność: Docker poprzez swoją architekturę opartą na kontenerach optymalizuje wykorzystanie zasobów. Umożliwia programistom uruchamianie wielu izolowanych aplikacji na jednym systemie hosta.
  4. Skalowalność: Funkcje skalowalności Dockera ułatwiły programistom łatwiejszą obsługę aplikacji w momencie wzrostu obciążenia.

Co to jest plik Dockerfile?

The Plik Dockera wykorzystuje DSL (język specyficzny dla domeny) i zawiera instrukcje dotyczące generowania obrazu Dockera. Dockerfile zdefiniuje procesy umożliwiające szybkie utworzenie obrazu. Tworząc aplikację, powinieneś utworzyć plik Dockerfile w odpowiedniej kolejności Demon Dockera uruchamia wszystkie instrukcje od góry do dołu.

(Demon Dockera, często nazywany po prostu Dockerem, to usługa działająca w tle, która zarządza kontenerami Dockera w systemie).

str.substring w Javie
  • Jest to dokument tekstowy zawierający niezbędne polecenia, które po wykonaniu pomagają złożyć obraz Dockera.
  • Obraz Dockera jest tworzony przy użyciu pliku Dockerfile.
Plik Dockera

Aby dowiedzieć się więcej o pliku Dockerfile, zobacz Docker – koncepcja pliku Dockerfile .

Co to jest architektura Dockera i jak działa Docker?

Docker wykorzystuje architekturę klient-serwer. Klient Dockera komunikuje się z demonem Dockera, który pomaga w budowaniu, uruchamianiu i dystrybucji kontenerów Dockera. Klient Docker działa z demonem w tym samym systemie lub możemy zdalnie połączyć klienta Docker z demonem Docker. Za pomocą interfejsu API REST za pośrednictwem gniazda UNIX lub sieci klient dokujący i demon współdziałają ze sobą. Aby dowiedzieć się więcej o działaniu okna dokowanego, zapoznaj się z sekcją Architektura Dockera .

Architektura Dockera

Co to jest obraz Dockera?

Jest to plik składający się z wielu warstw, używany do wykonywania kodu w kontenerze Docker. Stanowią zestaw instrukcji służących do tworzenia kontenerów dokowanych. Docker Image to wykonywalny pakiet oprogramowania, który zawiera wszystko, co potrzebne do uruchomienia aplikacji. Ten obraz informuje, w jaki sposób powinien zostać utworzony kontener, określając, które składniki oprogramowania będą działać i w jaki sposób. Docker Container to środowisko wirtualne, które łączy kod aplikacji ze wszystkimi zależnościami wymaganymi do uruchomienia aplikacji. Aplikacja działa szybko i niezawodnie z jednego środowiska komputerowego do drugiego.

Co to jest kontener Docker?

Kontener Docker to instancja obrazu w czasie wykonywania. Umożliwia programistom pakowanie aplikacji ze wszystkimi potrzebnymi częściami, takimi jak biblioteki i inne zależności. Kontenery Docker to instancje obrazów Docker w czasie wykonywania. Kontenery zawierają cały zestaw wymagany do aplikacji, dzięki czemu aplikację można uruchomić w izolowany sposób. Na przykład - Załóżmy, że istnieje obraz systemu operacyjnego Ubuntu z serwerem NGINX SERVER, gdy ten obraz zostanie uruchomiony za pomocą polecenia docker run, wówczas zostanie utworzony kontener i serwer NGINX SERVER będzie działał w systemie operacyjnym Ubuntu.

Co to jest Docker Hub?

Docker Hub to usługa repozytorium oparta na chmurze, w ramach której ludzie przesyłają obrazy kontenerów Docker, a także pobierają obrazy kontenerów Docker z Docker Hub w dowolnym miejscu i czasie przez Internet. Ogólnie rzecz biorąc, ułatwia to wyszukiwanie i ponowne wykorzystywanie obrazów. Zapewnia funkcje, takie jak przesyłanie obrazów do rejestru prywatnego lub publicznego, w którym można przechowywać i udostępniać obrazy Dockera.

Głównie zespół DevOps korzysta z Docker Hub. Jest to narzędzie typu open source, dostępne bezpłatnie dla wszystkich systemów operacyjnych. To jest jak magazyn, w którym przechowujemy obrazy i pobieramy je, gdy jest to potrzebne. Jeśli ktoś chce przesyłać/wyciągać obrazy z Docker Hub, musi posiadać podstawową wiedzę o Dockerze. Omówmy wymagania narzędzia Docker.

Co to jest Docker Compose?

Docker Compose uruchomi aplikację wielokontenerową opartą na YAML. Plik YAML zawiera wszystkie konfiguracje potrzebne do wdrożenia kontenerów Tworzenie Dockera , z którym jest zintegrowany Rój Dokerów i zawiera wskazówki dotyczące budowania i wdrażania kontenerów. Dzięki Docker Compose każdy kontener jest skonstruowany tak, aby działał na jednym hoście.

Jak pobrać pulpit Docker?

Docker Desktop zapewnia graficzny interfejs użytkownika do pracy na kontenerach dokowanych, obrazach dokowanych i sieciach dokowanych. Pulpit Docker zapewnia oddzielne środowisko, które zawiera Docker Engine, Docker CLI, Docker Compose, Kubernetes, oraz inne narzędzia potrzebne do budowania, dostarczania i uruchamiania aplikacji w formie kontenerów, co czyni je bardziej przyjaznymi dla użytkownika. Aby dowiedzieć się więcej, jak zainstalować pulpit dokowany, zobacz Przykładowy obraz pulpitu Docker.

Polecenia Dockera

Dzięki wprowadzeniu niezbędnych poleceń dokera, docker stał się potężnym oprogramowaniem usprawniającym proces zarządzania kontenerami. Pomaga w zapewnieniu płynnego przepływu pracy w zakresie programowania i wdrażania. Poniżej znajdują się niektóre powszechnie używane polecenia dokera:

jak sprawdzić rozmiar mojego monitora
  • Uruchomienie Dockera: Służy do uruchamiania kontenerów z obrazów, z określeniem opcji i poleceń wykonawczych.
  • Wyciągnięcie dokera: Pobiera obrazy kontenerów z rejestru kontenerów, np. Docker Hub, na maszynę lokalną.
  • Doker ps : Pomaga w wyświetlaniu działających kontenerów wraz z ich ważnymi informacjami, takimi jak identyfikator kontenera, użyty obraz i status.
  • Zatrzymanie dokowania : Pomaga w zatrzymaniu uruchomionych kontenerów, bezpiecznie zamykając procesy w nich zawarte.
  • Uruchomienie okna dokowanego: Pomaga w ponownym uruchomieniu zatrzymanych kontenerów, wznawiając ich działanie od stanu poprzedniego.
  • Logowanie do Dockera: Pomaga zalogować się do rejestru dokerów umożliwiając dostęp do prywatnych repozytoriów.

Aby dowiedzieć się więcej na temat poleceń okna dokowanego, zobacz Docker – Polecenia instrukcji .

Silnik Dockera

Oprogramowanie obsługujące kontenery nosi nazwę Docker Engine. Docker Engine to aplikacja oparta na kliencie-serwerze. Silnik dokowania składa się z 3 głównych komponentów:

  1. Serwer: Jest odpowiedzialny za tworzenie i zarządzanie obrazami Dockera, kontenerami, sieciami i woluminami w Dockerze. Nazywa się to procesem demona.
  2. API RESTOWE : Określa, w jaki sposób aplikacje mogą wchodzić w interakcję z Serwerem i instruuje go, co ma robić.
  3. Klient: Klient to interfejs wiersza poleceń platformy Docker (CLI), który umożliwia interakcję z platformą Docker za pomocą poleceń platformy Docker.

Dlaczego warto używać Dockera?

Dockera można użyć do spakowania aplikacji i jej zależności, co sprawia, że ​​jest on lekki i łatwy w szybszym dostarczaniu kodu i większej niezawodności. Docker sprawia, że ​​uruchomienie aplikacji w środowisku produkcyjnym jest bardzo proste. Kontener dokujący może być niezależny od platformy, jeśli na maszynie zainstalowany jest silnik dokujący.

  • Efektywność zasobów : Docker pomaga zmaksymalizować wykorzystanie zasobów, uruchamiając wiele kontenerów na jednym hoście. Pomaga w obniżeniu kosztów infrastruktury i poprawie wydajności.
  • Kontrola wersji: Upraszcza wersjonowanie aplikacji i ich zależności, zapewniając spójność i ułatwiając współpracę między zespołami.
  • Elastyczność mikrousług: Umożliwia przyjęcie architektury mikrousług, promując skalowalność, elastyczność i zwinny rozwój aplikacji z izolacją błędów.

Co to jest Docker dla AWS?

Docker to najpotężniejsze narzędzie do uruchamiania aplikacji w postaci kontenerów. Kontenery Docker są lekkie i można je uruchomić w dowolnym systemie operacyjnym.

AWS świadczy usługę Amazon Elastic Container Service ( Amazon ECS ) jest to w pełni zarządzana usługa kontenerowa, dzięki której można wdrażać, skalować i zarządzać kontenerami dokowanymi. Amazon ECS to najbardziej niezawodna platforma pod względem wydajności, a także można ją zintegrować z innymi usługami AWS, takimi jak równoważenie obciążenia, wykrywanie usług i monitorowanie stanu kontenerów. Aby dowiedzieć się więcej o Usługa elastycznego kontenera Amazon (Amazon ECS) .

Różnica między kontenerami Docker a maszynami wirtualnymi

Poniżej przedstawiono różnice między kontenerami dokowanymi a maszynami wirtualnymi:

Kontenery Dockera

Wirtualne maszyny

Kontenery Docker zawierają pliki binarne, biblioteki i pliki konfiguracyjne wraz z samą aplikacją.

Maszyny wirtualne (VM) działają na hypervisorach, które umożliwiają działanie wielu maszyn wirtualnych na jednej maszynie wraz z własnym systemem operacyjnym.

Nie zawierają systemu gościa dla każdego kontenera i opierają się na podstawowym jądrze systemu operacyjnego, co sprawia, że ​​kontenery są lekkie.

Każda maszyna wirtualna posiada własną kopię systemu operacyjnego wraz z aplikacją i niezbędnymi plikami binarnymi, przez co jest znacznie większa i wymaga większych zasobów.

Kontenery współdzielą zasoby z innymi kontenerami w tym samym systemie operacyjnym hosta i zapewniają izolację procesów na poziomie systemu operacyjnego.

Zapewniają izolację procesów na poziomie sprzętowym i uruchamiają się powoli.

Zainstaluj Dockera na Ubuntu

Poniższe kroki poprowadzą Cię przez instalację okna dokowanego na Ubuntu:

Krok 1: Usuń starą wersję Dockera

  • Wykonaj następujące polecenie, aby usunąć starą wersję oprogramowania dokera:
$ sudo apt-get remove docker docker-engine docker.io containerd runc>

Krok 2: Instalowanie silnika Dockera

  • Do instalacji silnika dokera używa się następującego polecenia:
$ sudo apt-get update   $ sudo apt-get install   ca-certificates   curl   gnupg   lsb-release $ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg $ echo   'deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu   $(lsb_release -cs) stable' | sudo tee /etc/apt/sources.list.d/docker.list>/dev/null $ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli kontenerd.io docker-compose-plugin $ sudo groupadd docker $ sudo usermod -aG docker $USER>

Krok 3: Sprawdź instalację Dockera

  • Sprawdź, czy okno dokowane zostało pomyślnie zainstalowane w Twoim systemie, próbując uruchomić kontener za pomocą następującego polecenia:
$ sudo docker run hello-world>

Aby uzyskać więcej szczegółów na temat instalacji okna dokowanego na Ubuntu, zapoznaj się z tym – Artykuł

15 z 100,00

Przykładowy przykład: Konteneryzacja aplikacji przy użyciu Dockera

Poniższe kroki prowadzą do konteneryzacji aplikacji przy użyciu Dockera:

Krok 1: Utwórz plik Dokcerfile i aplikację w języku Python

  • Utwórz folder zawierający 2 pliki (Dockerfile i plik main.py).

Krok 2: Opracuj kod w Pythonie

  • Edytuj plik main.py za pomocą poniższego kodu lub możesz spróbować opracować własny kod Pythona.
Pyton
#!/usr/bin/env python3 print('Docker and GFG rock!')>

Krok 3: Opracuj plik Dockerfile

  • Edytuj plik Dockerfile, korzystając z poniższych instrukcji dotyczących tworzenia pliku Dockerfile:
FROM python:latest COPY main.py / CMD [ 'python', './main.py' ]>

Krok 4: Utwórz obraz Dockera

  • Po utworzeniu i edycji pliku main.py i pliku Docker utwórz obraz zawierający aplikację, uruchamiając następujące polecenie:
$ sudo docker build -t python-test .>
  • Opcja „-t” pozwala zdefiniować nazwę Twojego obrazu. „Python-test” to nazwa, którą wybraliśmy dla obrazu.

Krok 5: Uruchom kontener Docker

  • Po utworzeniu obrazu kod jest gotowy do uruchomienia.
$ sudo docker run python-test>

Aby dowiedzieć się więcej na temat konteneryzacji aplikacji, zapoznaj się z tym – Artykuł

Przykładowy przykład przesyłania obrazu do Docker Hub

Poniższe kroki prowadzą do wypychania obrazu do Dockerhub:

Krok 1: Utwórz konto w Docker Hub lub użyj istniejącego, jeśli już je posiadasz.

Krok 2: Kliknij przycisk Utwórz repozytorium, podaj nazwę pliku i kliknij Utwórz.

Krok 3: Teraz oznaczymy nasz obraz i wypchniemy go do repozytorium Docker Hub, które właśnie utworzyliśmy.

wyliczenia Java
  • Teraz uruchom poniższe polecenie, aby wyświetlić listę obrazów dokowanych:
$ docker images>
  • Powyższe da nam taki wynik
REPOSITORY TAG IMAGE_ID CREATED SIZE afrozchakure/python-test latest c7857f97ebbd 2 hours ago 933MB>
  • Identyfikator obrazu służy do oznaczania obrazu. Składnia tagowania obrazu jest następująca:
docker tag /python-test:latest $ docker tag c7857f97ebbd afrozchakure/python-test:latest>

Krok 4: Prześlij obraz do repozytorium Docker Hub

$ docker push afrozchakure/python-test>

Aby dowiedzieć się więcej na temat publikowania obrazów w dockerhub, zapoznaj się z tym – Artykuł

Pobierz i uruchom obraz z Docker Hub

1. Aby usunąć wszystkie wersje konkretnego obrazu z naszego lokalnego systemu, używamy dla niego identyfikatora obrazu.

$ docker rmi -f af939ee31fdc>

2. Teraz uruchom obraz, pobierze obraz z centrum dokowanego, jeśli nie istnieje na twoim komputerze lokalnym.

$ docker run afrozchakure/python-test>

Korzyści z Dockera

Oto niektóre zalety Dockera:

  • Ruchliwość: Funkcje dokera umożliwiające tworzenie lekkich przenośnych kontenerów, których nie można uruchomić na żadnej maszynie, niezależnie od podstawowego systemu operacyjnego.
  • Izolacja: Docker poprzez kontenery zapewnia wysoki poziom izolacji, umożliwiając aplikacjom niezależne działanie, rozwiązując problemy, na które jeden kontener nie wpływa na drugi.
  • Powtarzalność: Dzięki temu programiści Dockera mogą z łatwością pakować swoje aplikacje i ich zależności w obrazy wielokrotnego użytku. Pozwala na spójne i powtarzalne kompilacje w środowiskach programistycznych, testowych i produkcyjnych.
  • Integracja DevOps : Promuje współpracę i automatyzację w całym cyklu życia oprogramowania, radząc sobie z rosnącymi obciążeniami.

Alternatywy dla Dockera

Oto alternatywy dla Dockera:

  • Stłumiony : Oferuje silnik kontenerowy zgodny z Dockerem, z naciskiem na bezpieczeństwo i kompatybilność, idealny dla środowisk, w których Docker nie jest preferowany lub dostępny.
  • rkt: Lekkie środowisko wykonawcze kontenerów opracowane przez CoreOS, zaprojektowane z myślą o prostocie, bezpieczeństwie i możliwości komponowania, oferujące alternatywę dla środowiska wykonawczego kontenerów Dockera.
  • LXC (kontenery Linux): Zapewnia wirtualizację na poziomie systemu operacyjnego do uruchamiania wielu izolowanych systemów Linux (kontenerów) na jednym hoście, oferując lekką alternatywę dla Dockera w niektórych przypadkach użycia.
  • kontenerd: Standardowe w branży środowisko wykonawcze kontenerów opracowane przez Docker, Inc., oferujące minimalną i stabilną platformę do tworzenia aplikacji kontenerowych, często używane jako alternatywa niższego poziomu dla Dockera w przypadku bardziej zaawansowanych systemów orkiestracji kontenerów, takich jak Kubernetes.

Bezpieczeństwo Dockera

Oto niektóre spostrzeżenia na temat bezpieczeństwa dokerów:

  • Izolacja : Kontenery Docker zapewniają silną izolację zapewniającą działanie aplikacji i przetwarzania.
  • Niezmienna infrastruktura : Promuje użycie niezmiennej infrastruktury, w której kontenery są budowane na podstawie niezmiennych obrazów kontrolowanych pod kątem wersji.
  • Ograniczenia zasobów: Umożliwia zdefiniowanie ograniczeń zasobów dla kontenerów, takich jak limity procesora i pamięci.
  • Skanowanie zabezpieczające: Zapewnia wbudowane narzędzia do skanowania bezpieczeństwa, które umożliwiają skanowanie obrazów kontenerów pod kątem znanych luk w zabezpieczeniach i złośliwego oprogramowania przed wdrożeniem.

Wniosek

Zatem poznałeś podstawy Dockera, różnicę między maszynami wirtualnymi a kontenerami Dockera oraz niektóre popularne terminologie stosowane w Dockerze. Przeszliśmy także przez instalację Dockera w naszych systemach. Stworzyliśmy aplikację przy użyciu Dockera i wypchnęliśmy nasz obraz do Docker Hub. Na koniec dowiedzieliśmy się, jak możemy usunąć konkretny obraz z naszego systemu lokalnego, a później pobrać go z Docker Hub, jeśli nie istnieje on lokalnie.

Docker – często zadawane pytania

Czym w skrócie jest Docker Hub?

Docker Hub to publiczny rejestr, w którym użytkownicy/programiści mogą przechowywać i udostępniać utworzone przez siebie obrazy systemów, umożliwiając im łatwy dostęp i ponowne wykorzystywanie obrazów innym twórcom oprogramowania.

Co jest potrzebne do korzystania z Docker Hub?

Aby korzystać z Docker Hub użytkownik powinien posiadać konto na platformie Docker Hub. Jeśli nie masz konta w Docker Hub, możesz je założyć, rejestrując się. Gdy masz konto w Dockerze, możesz wykonywać operacje, takie jak wypychanie i ściąganie obrazów do i z Docker Hub.

Czym są dzienniki Dockera?

Demon Docker i kontenery Docker będą generować logi Dockera w formie wiadomości tekstowych, które pomogą Ci w dalszym rozwiązywaniu problemów, monitorowaniu wydajności aplikacji i zbieraniu informacji o stanie Twojego środowiska Docker.

Co to jest kompilacja Dockera?

Docker build to polecenie używane do budowania obrazu dokera przy użyciu pliku Dockerfile.

Co to jest Docker Ubuntu?

Docker Ubuntu to termin używany do wykorzystania usługi Docker w systemach operacyjnych opartych na Ubuntu. Uruchamianie Dockera najlepiej sprawdza się w przypadku popularnej dystrybucji Linuksa – Ubuntu.