CodeGym /Kursy /Docker SELF /Podstawowe pojęcia Docker

Podstawowe pojęcia Docker

Docker SELF
Poziom 10 , Lekcja 0
Dostępny

6.1 Obrazy (Images)

Aby efektywnie korzystać z Dockera, trzeba zrozumieć kilka kluczowych pojęć: obrazy, kontenery i rejestry. Przyjrzyjmy się im i zrozummy, do czego służą i jak współdziałają.

Obraz Docker — to szablon, z którego tworzone są kontenery. Obraz zawiera wszystkie potrzebne komponenty do uruchomienia aplikacji: system operacyjny, aplikację, biblioteki i zależności, a także pliki konfiguracyjne. Porównując z OOP: obraz Dockera to klasa, a kontener to obiekt klasy. Obrazy tworzy się za pomocą Dockerfile — pliku tekstowego, który opisuje proces tworzenia obrazu.

Główne cechy obrazów:

  1. Struktura warstwowa: obrazy składają się z kilku warstw. Jest warstwa bazowa, a każda kolejna to zmiany w stosunku do poprzedniej. To pozwala oszczędzić miejsce i skraca czas ładowania.
  2. Wielokrotne użycie: ten sam obraz można używać do tworzenia wielu kontenerów.
  3. Przenośność: obrazy można przenosić między różnymi systemami, co czyni je idealnymi dla developmentu, testowania i wdrażania aplikacji w różnych środowiskach.

Przykłady użycia obrazów:

Tworzenie własnego obrazu: możesz stworzyć swój własny obraz, pisząc Dockerfile, w którym określisz ustawienia swojej aplikacji i jej zależności.

dockerfile

FROM ubuntu:latest
RUN apt-get update && apt-get install -y python3
COPY . /app
CMD ["python3", "/app/app.py"]

Używanie gotowego obrazu: możesz używać obrazów dostępnych w Docker Hub, aby szybko wdrożyć standardowe aplikacje, takie jak serwery WWW czy bazy danych.

Terminal

docker pull nginx 

To polecenie pobiera obraz nginx z publicznego repozytorium Docker Hub.

6.2 Kontenery (Containers)

Kontener Docker to uruchomiona instancja obrazu. Kontenery izolują aplikacje i ich zależności w osobnym środowisku wykonawczym, co pozwala na ich uruchamianie niezależnie od systemu gospodarza i innych kontenerów. Kontenery są lekkie, ponieważ używają jądra systemu operacyjnego gospodarza, a nie tworzą osobnego jądra, tak jak maszyny wirtualne.

Podstawowe cechy kontenerów:

  • Izolacja: kontenery izolują aplikacje, zapewniając ich niezależne działanie i zapobiegając konfliktom zależności.
  • Lekkość: kontenery zużywają mniej zasobów w porównaniu z maszynami wirtualnymi, gdyż nie wymagają osobnego systemu operacyjnego.
  • Szybki start: kontenery startują i zatrzymują się znacznie szybciej niż maszyny wirtualne, co czyni je idealnymi dla dynamicznych środowisk i skalowania.

Przykłady użycia kontenerów:

Uruchamianie kontenera: możesz uruchomić kontener z obrazu za pomocą komendy docker run.

Terminal

docker run -d -p 80:80 --name mynginx nginx

Zarządzanie kontenerami: Docker udostępnia komendy do zarządzania kontenerami: start, stop, restart, rm i exec.

Terminal

docker stop mynginx
docker rm mynginx

O wszystkich komendach i ich parametrach dowiesz się na kolejnych wykładach.

6.3 Rejestry (Registries)

Rejestr Docker — to miejsce przechowywania obrazów Docker. Rejestry pozwalają programistom oraz organizacjom przechowywać, zarządzać i dystrybuować obrazy kontenerów. Istnieją rejestry publiczne oraz prywatne.

Podstawowe cechy rejestrów:

  • Rejestry publiczne: takie jak Docker Hub, zapewniają dostęp do wielu obrazów tworzonych przez społeczność oraz oficjalnych programistów.
  • Rejestry prywatne: są używane do przechowywania i zarządzania obrazami wewnątrz organizacji, zapewniając kontrolę dostępu i bezpieczeństwo.
  • Integracja z CI/CD: rejestry łatwo integrują się z systemami ciągłej integracji i wdrażania, co umożliwia automatyzację procesu tworzenia i wdrażania obrazów.

Przykłady użycia rejestrów:

1. Docker Hub: publiczny (i najbardziej popularny) rejestr obrazów Docker. Zapewnia dostęp do wielu gotowych (i często sprawdzonych, co widać po statystykach pobrań) obrazów.

Terminal

docker pull nginx
docker push myusername/myimage:tag  

2. Prywatny rejestr: możesz skonfigurować i używać własnego rejestru za pomocą Docker Registry.

Terminal

docker run -d -p 5000:5000 --name registry registry:2
docker tag myimage localhost:5000/myimage
docker push localhost:5000/myimage

Interakcja między obrazami, kontenerami i rejestrami

Te trzy elementy są ściśle ze sobą powiązane i tworzą podstawę pracy z Docker:

  • Tworzenie obrazu: programista tworzy obraz za pomocą Dockerfile i zapisuje go lokalnie.
  • Załadowanie obrazu do rejestru: obraz jest ładowany do rejestru (na przykład Docker Hub lub prywatny rejestr), gdzie jest przechowywany i staje się dostępny dla innych użytkowników lub systemów.
  • Uruchomienie kontenera: użytkownik pobiera obraz z rejestru i uruchamia kontener, który izoluje aplikację i zapewnia jej działanie.

6.4 Orkiestracja (Orchestration)

Orkiestracja — to proces zarządzania wieloma kontenerami w rozproszonej infrastrukturze. Narzędzia orkiestracji pomagają zautomatyzować wdrażanie, skalowanie i zarządzanie kontenerami.

  • Kubernetes: najpopularniejsza platforma orkiestracji kontenerów, pozwalająca zarządzać klastrem kontenerów na różnych węzłach.
  • Docker Swarm: wbudowana w Docker platforma orkiestracji do tworzenia i zarządzania klastrami Docker.
  • Funkcje orkiestracji: automatyczne skalowanie, samodzielne odzyskiwanie, zarządzanie sieciami i balansowanie obciążenia.

6.5 Sieci (Networks)

Sieci w Docker umożliwiają kontenerom współpracę między sobą i z otoczeniem zewnętrznym. Docker oferuje kilka rodzajów sieci dla różnych scenariuszy użycia.

  • Bridge: sieć domyślna tworzona przez Docker. Kontenery w sieci bridge mogą współdziałać między sobą.
  • Host: kontener korzysta z interfejsów sieciowych maszyny hosta, uzyskując bezpośredni dostęp do nich.
  • Overlay: używana do tworzenia sieci pomiędzy wieloma demonami Docker. Niezbędna do orkiestracji.
  • None: wyłącza wszystkie interfejsy sieciowe kontenera. Przydatna do zadań izolowanych.

6.6 Wolumeny (Volumes)

Wolumeny (Volumes) — to mechanizm do trwałego przechowywania danych kontenerów. Pozwalają one na zapis danych poza kontenerem, tak aby informacje nie zostały utracone przy ponownym uruchomieniu lub usunięciu kontenera.

  • Tworzenie wolumenu: wolumeny tworzone są za pomocą polecenia docker volume create.
  • Montowanie wolumenu: wolumeny podłączane są do kontenerów flagą -v podczas uruchamiania.
  • Zalety: wolumeny zapewniają wygodne przechowywanie oraz wymianę danych między kontenerami, a także lepszą wydajność w porównaniu z powiązanymi katalogami (bind mounts).

Ważne! Wolumen — to wirtualny dysk twardy, który można podłączyć do maszyny wirtualnej lub kontenera. Zazwyczaj przechowywany jest w systemie operacyjnym hosta jako zwykły plik.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION