Kurs Java

Pierwszy obraz i kontener

Wprowadzenie do Docker może wydawać się skomplikowane, ale zaczyna się od prostych koncepcji. Kluczowe jest zrozumienie, co to są obrazy Dockera i jak z nich korzystać do tworzenia kontenerów. W tym artykule przejdziemy przez proces pobierania pierwszego obrazu z Docker Hub oraz uruchomienia z niego kontenera, używając bardzo popularnego przykładu.

Pierwszy obraz Docker

Docker Hub jest publicznym repozytorium, które zawiera szeroką gamę obrazów Dockera, od prostych narzędzi po zaawansowane aplikacje. Możesz zacząć od pobrania prostego obrazu, by zrozumieć, jak Docker działa. W celach edukacyjnych pobierz obraz hello-world, który służy do demonstracji podstawowych możliwości Dockera. Aby go użyć, wykonaj w pierwszej kolejności polecenie docker pull w konsoli CMD (albo Powershell). Jako argument podaj nazwę obrazu: hello-world:
Komunikacja Fronted - Backend
Wykonanie komendy powoduje pobranie obrazu z centralnego repozytorium obrazów Docker. Dodatkowo w ramach procesu wyświetlane są następujące informacje:
  • Using default tag: latest — Docker używa systemu tagowania, aby określić różne wersje obrazów. Jeśli nie podasz konkretnej wersji (tagu) obrazu, Docker automatycznie użyje tagu latest. Oznacza to, że pobierasz najnowszą wersję obrazu hello-world. Tag latest jest standardowym tagiem używany w Dockerze, który zwykle wskazuje na najnowszą stabilną wersję obrazu.
  • Pulling from library/hello-world — Komunikat ten wskazuje, że Docker rozpoczął proces pobierania obrazu hello-world z domyślnej biblioteki obrazów Dockera (Docker Hub). Nazwa library definiuje oficjalną kolekcję obrazów na Docker Hub. Nazwa hello-world jest nazwą obrazu w tej bibliotece.
  • c1ec31eb5944: Pull complete — Ciąg c1ec31eb5944 to identyfikator (ID) warstwy obrazu. Obrazy Dockera są budowane z warstw, a każda warstwa reprezentuje część obrazu. Natomiast Pull complete oznacza, że pobieranie tej konkretnej warstwy obrazu zostało zakończone.
  • Digest: sha256:ac69084025c66051... — Jest to unikalny identyfikator obrazu, znany jako digest SHA256, co jest rodzajem sumy kontrolnej. Każdy obraz Docker ma unikalną sumę kontrolną, który można wykorzystać do weryfikacji integralności obrazu. Część sha256 to algorytm używany do wygenerowania digestu, zapewniający, że obraz nie został zmodyfikowany ani uszkodzony podczas transferu.
  • StatusStatus Downloaded newer image jest komunikatem informującym, że Docker pobrał najnowszą wersję obrazu hello-world.
  • docker.io — to domyślna domena, z której Docker pobiera obrazy, czyli Docker Hub, a library/hello-world:latest jest pełną ścieżką obrazu wraz z tagiem.
Po pobraniu obrazu znajdziesz go w sekcji 'Images' w interfejsie narzędzia Docker Desktop:
Komunikacja Fronted - Backend

Pierwszy kontener Docker

Po pobraniu pierwszego obrazu, możesz przejść do jego wykorzystania, tworząc konkretną instancję kontenera opartą na dostępnym obrazie. W tym celu wywołujesz komendę docker run podając argument w postaci nazwy obrazu: hello-world
Komunikacja Fronted - Backend
Wykonanie komendy powoduje uruchomienie kontenera na podstawie obrazu. Oto co widzisz po uruchomieniu:
  • Klient Dockera skontaktował się z demonem Dockera. Demon Dockera, znany również jako dockerd, jest to podstawowy proces serwerowy w Dockerze, który zarządza wszystkimi działaniami związanymi z Dockera, w tym tworzeniem, uruchamianiem i zarządzaniem kontenerami Docker. Jest to kluczowy komponent architektury Dockera, który działa w tle i umożliwia wysoki poziom kontroli i zarządzania kontenerami.
  • Demon Dockera pobrał obraz hello-world z Docker Hub. (amd64)
  • Demon Dockera stworzył nowy kontener z tego obrazu, który uruchamia program wykonawczy, produkujący wyjście, które obecnie czytasz.
  • Demon Dockera przesłał to wyjście do klienta Dockera, który wysłał je do Twojego terminala.
Po uruchomieniu kontenera znajdziesz go w sekcji 'Containers' w interfejsie narzędzia Docker Desktop:
Komunikacja Fronted - Backend
Co istotne, kontener hello-world po uruchomieniu wyświetla wymienione wcześniej informacje na konsoli, a następnie samoczynnie się zamyka. To powoduje, że jego status w Docker Desktop jest oznaczony jako Exited (co znajduje się w jednej z kolejnych kolumn, niewidocznej na wcześniejszym zdjęciu). Fakt, że kontener obecnie nie jest uruchomiony, możesz rozpoznać po obserwacji ikony kontenera, która znajduje się tuż przed jego nazwą.

Oczywiście, kontenery często zachowują się inaczej. Na przykład kontener uruchomiony na bazie obrazu z serwerem HTTP będzie działał aż do momentu, gdy zostanie jawnie zatrzymany przez użytkownika — w takim przypadku ikona obrazu będzie wyglądała na zapaloną. Więcej na ten temat przeczytasz w kolejnym rozdziale, który zostanie opublikowany w niedalekiej przyszłości.
Appa Notka. Analizujemy kolejne kursy na Udemy, wykorzystując nasze doświadczenie zawodowe do oceny ich efektywności i popularności wśród uczestników. Z dużym zaangażowaniem selekcjonujemy te, które naszym zdaniem są najbardziej efektywne i jednocześnie cieszą się uznaniem uczestników.

Poniższy kurs "Docker od podstaw - dla programistów i nie tylko" jest efektem tej głębokiej analizy i prezentuje idealne połączenie wysokiej jakości edukacyjnej z aktualnymi trendami i wymaganiami rynkowymi.
Natomiast jeżeli wolisz kursy anglojęzyczne, proponujemy prawdziwy hit — "Docker & Kubernetes: The Practical Guide [2023 Edition]". Ponad 157 000 uczestników, ocena około 4,7.
Zdjęcie autora
Autor: Jarek Klimas
Data: 30 grudnia 2023
Labele: Backend, Poziom średniozaawansowany, Java
Topowe Materiały
Docker: Home Page
Docker: Downlaoad and install
Docker: Get Started with Docker
Docker: Kickstart Your Spring Boot Application Development

Spring IO: Container Images
Spring IO: Spring Boot Docker

Baeldung: Docker Guide
Baeldung: Creating Docker Images with Spring Boot
Baeldung: Introduction to Docker Compose
Baeldung: Docker Compose Support in Spring Boot 3

Udemy: Docker od podstaw - dla programistów i nie tylko
Udemy: Docker & Kubernetes: The Practical Guide [2023 Edition]

Stale się rozwijamy, a więc bądź na bieżąco!
Na ten adres będziemy przesyłać informacje o ważniejszych aktualizacjach, a także o nowych materiałach pojawiających się na stronie.
Polub nas na Facebooku:
Nasi partnerzy: stackshare
Javappa to również profesjonalne usługi programistyczne oparte o technologie JAVA. Jeśli chesz nawiązać z nami kontakt w celu uzyskania doradztwa bądź stworzenia aplikacji webowej powinieneś poznać nasze doświadczenia.
Kliknij O nas .


Pozycjonowanie stron: Grupa TENSE