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:
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.
-
Status — Status 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:
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
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:
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.
Autor: Jarek Klimas
Data: 30 grudnia 2023
Labele: Backend, Poziom średniozaawansowany, Java
Czy informacje, które otrzymałeś, były pomocne?
Jeśli tak, zapraszam Cię do podarowania mi kawy.
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]