DevOps i automatyzacja Średnio zaawansowany 50 min

Podstawy konteneryzacji

Rozpoznasz obrazy, kontenery i rejestry oraz sprawdzisz, co rzeczywiście uruchamia Docker.

Wróć do listy lekcji

1. Krótka teoria

Kontener to proces odizolowany od innych procesów za pomocą mechanizmów jądra systemu. Korzysta z jądra hosta, dlatego nie jest pełną maszyną wirtualną z własnym systemem operacyjnym. Maszyna wirtualna uruchamia własne jądro i daje inny zakres izolacji. Obraz jest niezmiennym szablonem zawierającym pliki i metadane potrzebne do uruchomienia procesu; kontener jest jego działającą instancją z zapisywalną warstwą. Z jednego obrazu można uruchomić wiele kontenerów. Registry przechowuje obrazy, a tag wskazuje wariant, choć może zostać przesunięty na nową wersję. W powtarzalnym wdrożeniu warto przypiąć obraz do konkretnego digestu. Warstwy obrazu pozwalają współdzielić niezmienione części między wersjami i ograniczać transfer. Samo pobranie obrazu nie uruchamia aplikacji. W tym ćwiczeniu obraz Nginxa służy jako obca usługa treningowa; później zbudujesz obraz własnego orders-api. Pamiętaj, że kontener nie zastępuje kontroli uprawnień ani aktualizacji bazowego obrazu.

2. Przykłady komend

docker version

Sprawdza klienta i dostępność silnika Dockera.

$ docker version
docker pull nginx:1.28

Pobiera wskazany obraz z registry.

$ docker pull nginx:1.28
docker images nginx

Pokazuje lokalny obraz, jego tag i rozmiar.

$ docker images nginx
docker image inspect nginx:1.28

Wyświetla metadane obrazu, w tym jego identyfikator.

$ docker image inspect nginx:1.28
docker history nginx:1.28

Pokazuje historię warstw budujących obraz.

$ docker history nginx:1.28
docker run --rm nginx:1.28 nginx -v

Tworzy kontener, uruchamia polecenie i usuwa kontener po zakończeniu.

$ docker run --rm nginx:1.28 nginx -v

3. Zadanie praktyczne

Pobierz nginx:1.28, odczytaj jego identyfikator i historię warstw. Uruchom jednorazowy kontener wyświetlający wersję Nginxa. W notatce rozdziel trzy pojęcia: obraz zapisany lokalnie, kontener powstały z obrazu oraz registry, z którego pobrano obraz. Sprawdź, czy po użyciu --rm jednorazowy kontener nadal figuruje na liście.

4. Typowe błędy

  • Nazywanie obrazu uruchomionym procesem, mimo że jest tylko szablonem.
  • Zakładanie, że kontener ma własne jądro systemu operacyjnego.
  • Uznawanie ruchomego tagu za gwarancję niezmienności wersji.
  • Traktowanie izolacji kontenera jako kompletnej ochrony hosta.

5. Podsumowanie

Obraz jest szablonem, kontener jego instancją, a registry miejscem dystrybucji obrazów. Kontenery współdzielą jądro hosta, a obrazy składają się z warstw. Do odtwarzalnego wdrożenia potrzebna jest kontrola konkretnej wersji obrazu.

Flow nauki
  1. Teoria
  2. Przykład
  3. Ćwiczenie
  4. Quiz
  5. Praktyka
  6. Podsumowanie