Hopp til innhold

Docker – Czym jest Docker?

Skip to content

To jest tłumaczenie maszynowe i może zawierać błędy!

Czym jest Docker?

Planujesz skonfigurować serwer WWW na serwerze Linuksa. Jedną z możliwości jest bezpośrednia instalacja serwera WWW oraz wszystkich zależności w systemie operacyjnym serwera. Dzięki Dockerowi możesz zamiast tego pobrać gotowy obraz (image) i utworzyć z niego kontener.

Tutaj będziesz musiał wyjaśnić różnicę między obremem a kontenerem i pokazać, co robi Docker pomiędzy poleceniem a działającą usługą. Nie musisz jeszcze niczego instalować.

Zanim zaczniesz: Czy potrafisz wyjaśnić różnicę między maszyną wirtualną a kontenerem? Jeśli nie jesteś pewien, zacznij od Kontenery i maszyny wirtualne. Znajdziesz tam również informacje o tym, jak Docker może działać wewnątrz maszyny wirtualnej Linuksa na Proxmox.

Miejsce w materiałach szkoleniowych: Docker to narzędzie do containerizacji. Rdzeń systemu operacyjnego wyjaśnia, czym dzielą się kontenery. Mapa przeglądowa przedstawia relacje między systemem operacyjnym, maszynami wirtualnymi, kontenerami oraz narzędziami.

Docker to jest narzędziem obsługującym kontenery

Docker może budować i pobierać obrazy, tworzyć i uruchamiać kontenery oraz zarządzać ich sieciami i pamięcią masową. Na serwerze Linuxowym tę pracę wykonuje Docker Engine.

Gdy wpisujesz polecenie docker run, używasz klienta wiersza poleceń Dockera. Klient wysyła żądanie do usługi Dockera, dockerd, która obsługuje kontener. W środowisku ćwiczeniowym zarówno klient, jak i usługa działają wewnątrz maszyny wirtualnej z Linuksem.

Możesz wpisać polecenie w konsoli maszyny wirtualnej w Proxmoxie lub w sesji SSH połączony z tą samą maszyną wirtualną. Obie ścieżki sterują Dockerem na tej samej maszynie wirtualnej. Docker Desktop to inny produkt, który łączy narzędzia Dockera w programie desktopowym; nie jest on wymagany dla konfiguracji serwera opisanej tutaj.

Jeden obraz może być używany do wielu kontenerów

Obraz nginx:alpine jest używany do utworzenia dwóch oddzielnych kontenerów. Jedna nazywa się min-nginx i działa, podczas gdy druga nazywa się test-nginx i jest zatrzymana. Obraz nadal istnieje niezależnie od obu.

Obraz to pakiet zawierający pliki, program oraz ustawienia służące do tworzenia kontenera. nginx:alpine jest przykładem: nginx określa nazwę obrazu, a alpine to tag, etykieta wskazująca wariant obrazu. Tag może później wskazywać na nową wersję.

Kontener to samodzielna instancja utworzona z obrazu, posiadająca własną nazwę, stan i warstwę zapisywalną. Kontener może zostać utworzony, uruchomiony lub zatrzymany. Zatrzymane programu nie oznacza zatem usunięcia kontenera.

Obraz nie ulega zmianie przy modyfikacji pliku w warstwie zapisywanej kontenera. Utworzenie innego kontenera z tego samego obrazu nadaje mu własną warstwę zapisywalną.

Skąd pochodzi obraz?

Rejestr kontenerów (registry) przechowuje i dystrybuje obrazy. Docker Hub i GitHub Container Registry są dwoma przykładami.

Gdy obraz znajduje się w rejestrze, ale nie na serwerze, Docker może go pobrać za pomocą polecenia docker pull. Możesz również zbudować własny obraz z kodu źródłowego i pliku Dockerfile; poznasz to na poziomie 2.

Pojęcie W przykładzie serwera WWW
Rejestr Docker Hub, skąd można pobrać obraz Nginxa.
Obraz nginx:alpine, pobrany pakiet.
Kontener min-nginx, osobna instancja utworzona z pakietu.
Usługa Serwer WWW odpowiadający na żądania HTTP podczas działania programu.

Co oznaczają pierwsze polecenia?

Na razie musisz tylko przeczytać ten przykład. Instalacja i praktyczna realizacja zostaną omówione w sekcji Poziom 1.

docker pull nginx:alpine
docker run -d --name min-nginx -p 8080:80 nginx:alpine
docker ps

Pierwsza polecenie pobiera obraz. Drugie tworzy i uruchamia kontener min-nginx oraz mapuje port serwera 8080 na port kontenera 80. Trzecie wyświetla działające kontenery. Nginx to oprogramowanie obsługujące żądania; Docker zarządza środowiskiem, w którym działa.

Przewiduj, co pozostanie

Masz jeden obraz (image) oraz dwa kontenery utworzone z niego. Zatrzymujesz i usuwasz tylko min-nginx.

  1. Czy obraz nadal istnieje?
  2. Czy test-nginx również znika?
  3. Czy możesz utworzyć nowy kontener na podstawie tego obrazu?

Sprawdź odpowiedź: Obraz nadal istnieje, a test-nginx nie został usunięty. Możesz utworzyć nowy kontener z tego samego obrazu. Pliki istniejące wyłącznie w warstwie zapisywalnej kontenera min-nginx zostaną jednak usunięte po usunięciu tego kontenera.

Jesteś gotowy do poziomu 1, gdy potrafisz wyjaśnić różnicę własnymi słowami i wskazać rejestr, obraz, kontener oraz usługę w przykładzie. Jeśli mylisz obrazy z kontenerami, użyj diagramu i spróbuj ponownie z innymi nazwami kontenerów. Chcesz zbadać to głębiej? Wyjaśnij, dlaczego samo polecenie docker ps nie pokazuje, czy obraz istnieje, ani czy zatrzymany kontener jest wciąż przechowywany.

Dalej

Zainstaluj silnik Dockera. Skorzystaj z zasobów dotyczących konteneryzacji, aby zrozumieć związek między maszynami wirtualnymi a wirtualizacją.

Źródła: architektura Dockera, obraz oraz cykl życia kontenera. Ilustracja została stworzona na potrzeby tego zasobu.