CodeGym /Kursy /Docker SELF /Wprowadzenie do Docker Images

Wprowadzenie do Docker Images

Docker SELF
Poziom 13 , Lekcja 0
Dostępny

1.1 Podstawy Docker Images

Docker Images (obrazy Docker) — to szablony dla kontenerów Docker. Zawierają wszystko, co jest potrzebne do uruchamiania aplikacji: kod, biblioteki, zależności, narzędzia i pliki konfiguracyjne. Zrozumienie, czym są Docker Images i jak są zbudowane, jest ważne dla efektywnego korzystania z Docker.

Docker Image — to niezmienny szablon, który jest używany do tworzenia kontenerów. Zawiera wszystkie niezbędne komponenty do uruchamiania aplikacji w izolowanym środowisku. Gdy uruchamiasz kontener, Docker tworzy instancję obrazu i uruchamia go.

Kluczowe cechy Docker Images:

  1. Niezmienność: obrazy Docker są niezmienne. Wszelkie zmiany dokonane w kontenerze nie wpływają na oryginalny obraz. Aby zmienić zawartość obrazu, trzeba stworzyć nowy obraz.
  2. Warstwowa struktura: Docker Images składają się z kilku warstw. Każda warstwa reprezentuje zmianę w stosunku do poprzedniej. Pozwala to na efektywne wykorzystanie miejsca dzięki ponownemu użyciu warstw.
  3. Identyfikacja: każdy obraz ma unikalny identyfikator (SHA256-hash), a także może mieć jeden lub więcej tagów, które ułatwiają zarządzanie wersjami obrazów.

Struktura Docker Images:

Docker Images mają warstwową strukturę, gdzie każda warstwa jest systemem plików. Te warstwy są przechowywane w pamięci podręcznej Docker i mogą być ponownie używane przez inne obrazy. Warstwowa struktura sprawia, że obrazy Docker są lekkie i wydajne. Na przykład, pierwszą warstwą jest system operacyjny, drugą — Python, trzecią — twoja aplikacja.

Główne komponenty struktury Docker Images:

  1. Warstwa bazowa (Base Layer): początkowa warstwa obrazu, która jest często używana jako podstawa do tworzenia innych obrazów. Na przykład, może to być minimalna wersja systemu operacyjnego, takiego jak Ubuntu lub Alpine Linux.
  2. Warstwy pośrednie (Intermediate Layers): te warstwy tworzone są na podstawie poleceń wykonanych w Dockerfile (na przykład instalacja pakietów, kopiowanie plików itp.). Każda warstwa dodaje zmiany do poprzedniej.
  3. Warstwa końcowa (Final Layer): ostatnia warstwa tworzona na podstawie instrukcji CMD, ENTRYPOINT lub zmian we wnętrzu kontenera, nazywana jest "warstwą kontenerową". Ta warstwa jest tymczasowa i istnieje tylko podczas działania kontenera.

1.2 Jak działają warstwy Docker Images

Każda warstwa obrazu Docker przedstawia zestaw zmian w stosunku do poprzedniej warstwy. Kiedy Docker tworzy obraz, wykonuje każdą instrukcję z Dockerfile i dodaje nową warstwę dla każdej zmiany.

Przykład tworzenia warstw:

  1. Podstawowy obraz: zaczynamy od podstawowego obrazu, na przykład ubuntu:20.04. To będzie pierwsza warstwa.
  2. Instalacja pakietów: polecenie RUN apt-get update && apt-get install -y python3 stworzy nową warstwę z zainstalowanym Pythonem.
  3. Kopiowanie plików: polecenie COPY . /app doda pliki aplikacji do nowej warstwy.
  4. Ustawienie katalogu roboczego: polecenie WORKDIR /app stworzy warstwę, która ustawi katalog roboczy dla kolejnych poleceń.

Zalety użycia warstw:

  1. Ponowne wykorzystanie: warstwy mogą być ponownie wykorzystywane przez inne obrazy. Na przykład, jeśli dwa obrazy używają tej samej podstawowej warstwy, Docker załaduje ją tylko raz, oszczędzając miejsce i czas.
  2. Cache: Docker przechowuje w pamięci podręcznej warstwy, co przyspiesza proces budowania obrazów. Jeśli warstwa się nie zmieniła, Docker użyje jej z pamięci podręcznej zamiast tworzyć od nowa.
  3. Modularność: struktura warstw pozwala na modułowe projektowanie obrazów. Możesz aktualizować lub zmieniać poszczególne warstwy bez wpływu na cały obraz.

Identyfikacja i tagi Docker Images:

Każdy Docker Image jest identyfikowany za pomocą unikalnego hasha (SHA256), który jest generowany na podstawie zawartości obrazu i wszystkich jego warstw. Dla wygody zarządzania i wersjonowania Docker Images mogą również mieć tagi.

Przykład identyfikacji obrazu:

Następujące polecenie pokaże listę wszystkich obrazów w twoim systemie, w tym ich repozytorium, tagi, identyfikatory i rozmiary:

Terminal

docker images

1.3 Praca z Docker Images

Docker oferuje wiele poleceń do pracy z obrazami. Oto główne z nich:

  • Tworzenie obrazu: docker build
  • Uruchomienie kontenera z obrazu: docker run
  • Lista obrazów: docker images
  • Usuwanie obrazu: docker rmi
  • Wyszukiwanie obrazów w Docker Hub: docker search
  • Pobieranie obrazu z Docker Hub: docker pull
  • Wysyłanie obrazu do Docker Hub: docker push

Przykład tworzenia i używania Docker Image:

1. Tworzenie Dockerfile:

dockerfile

# Używamy bazowego obrazu Ubuntu
FROM ubuntu:20.04

# Instalujemy Python
RUN apt-get update && apt-get install -y python3

# Kopiujemy pliki aplikacji do kontenera
COPY . /app

# Ustawiamy katalog roboczy
WORKDIR /app

# Określamy polecenie do uruchomienia aplikacji
CMD ["python3", "app.py"]

2. Budowanie obrazu:

Następujące polecenie stworzy obraz o nazwie my_python_app, używając Dockerfile z bieżącego katalogu:

Terminal

docker build -t my_python_app .

3. Uruchamianie kontenera z obrazu:

Użyj następującego polecenia, aby uruchomić kontener z utworzonego obrazu my_python_app w trybie background:

Terminal

docker run -d my_python_app
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION