Jak działa przechowywanie w Dockerze: wolumeny vs montowanie powiązań | INTROSERV
EUR
european

EUR

usa

USD

Poland Pl
Ex. VAT Ex. VAT 0%

Jak działa przechowywanie w Dockerze: wolumeny vs montowanie powiązań

Wprowadzenie

W tym samouczku dowiesz się, jak działa przechowywanie danych w Dockerze i jak utrwalać dane za pomocą Wolumenów Dockera i Montowań Powiązanych. Zrozumiesz również kluczowe różnice między tymi podejściami i kiedy używać każdego z nich w produkcji. To pomoże Ci uniknąć utraty danych i zaprojektować niezawodne systemy kontenerowe.

Wymagania wstępne

  • Docelowa grupa odbiorców: Początkujący administratorzy systemów
  • Szacowany czas: ~30 minut
  • System operacyjny: Dowolny system z obsługą Dockera, taki jak Ubuntu 22.04+, Debian 12+, CentOS Stream lub macOS z Docker Desktop
  • Oprogramowanie: Docker 24.0.0 lub nowszy
  • Uprawnienia: Użytkownik z dostępem do Dockera lub uprawnieniami sudo
  • Sprzęt: Co najmniej 2 GB RAM i 10 GB wolnego miejsca na dysku
  • Sieć: Dostęp do Internetu w celu pobierania obrazów kontenerów
  • Zakładana wiedza: Podstawowe korzystanie z linii poleceń i zrozumienie kontenerów

Krok 1: Zrozumienie, jak działa przechowywanie danych w Dockerze

Kontenery Dockera używają warstwowego systemu plików. Każdy kontener ma warstwę zapisywalną na wierzchu warstw obrazu tylko do odczytu.

Co się dzieje, gdy kontener zapisuje dane

  1. Docker przechowuje warstwy obrazu jako tylko do odczytu
  2. Gdy uruchamiasz kontener, Docker dodaje warstwę zapisywalną
  3. Wszelkie zmiany plików zachodzą tylko w tej warstwie zapisywalnej

Wynik

Gdy usuniesz kontener, wszystkie dane w warstwie zapisywalnej zostaną utracone. Oznacza to, że przechowywanie danych w kontenerze jest domyślnie efemeryczne.

Info

To zachowanie jest przydatne dla aplikacji bezstanowych, ale nie dla baz danych lub usług trwałych.

Krok 2: Tworzenie i używanie Wolumenów Dockera

Wolumeny Dockera to zarządzane lokalizacje przechowywania tworzone i utrzymywane przez Dockera.

Tworzenie wolumenu

Uruchom następujące polecenie:

docker volume create my_volume

Powinieneś zobaczyć zwróconą nazwę wolumenu.

Używanie wolumenu w kontenerze

Uruchom następujące polecenie:

docker run -d -v my_volume:/app/data --name volume_test busybox

Docker montuje wolumen wewnątrz kontenera w /app/data.

Wynik

Dane zapisane w /app/data są trwałe, nawet jeśli kontener zostanie usunięty.

Kluczowe cechy wolumenów

  • Zarządzane przez Dockera
  • Przechowywane w wewnętrznych katalogach Dockera, takich jak /var/lib/docker/volumes/
  • Łatwe do tworzenia kopii zapasowych i migracji
  • Izolowane od struktury systemu plików hosta

Tip

Używaj wolumenów dla baz danych i obciążeń produkcyjnych.

Krok 3: Tworzenie i używanie Montowań Powiązanych

Montowania powiązane łączą określony katalog na hoście z katalogiem wewnątrz kontenera.

Używanie montowania powiązanego

Uruchom następujące polecenie:

docker run -d -v /home/<YOUR_USERNAME>/data:/app/data --name bind_test busybox

Wynik

Kontener bezpośrednio uzyskuje dostęp do katalogu hosta. Wszelkie zmiany w katalogu hosta są natychmiast widoczne wewnątrz kontenera.

Kluczowe cechy montowań powiązanych

  • Zależne od ścieżek systemu plików hosta
  • Pozwalają na bezpośrednią edycję plików z hosta
  • Brak izolacji zarządzanej przez Dockera
  • Bardziej elastyczne, ale mniej przenośne

Info

Montowania powiązane natychmiast odzwierciedlają zmiany między hostem a kontenerem.

Krok 4: Porównanie Wolumenów i Montowań Powiązanych

Zrozumienie różnic pomaga wybrać odpowiednią opcję.

Wolumeny Dockera

  • Zarządzane przez Dockera
  • Przenośne między środowiskami
  • Bezpieczniejsze do użytku produkcyjnego
  • Łatwiejsze do tworzenia kopii zapasowych
  • Abstrahowane od systemu plików hosta

Montowania Powiązane

  • Zarządzane przez hosta
  • Związane z określonymi ścieżkami systemu plików
  • Przydatne do rozwoju
  • Zapewniają bezpośredni dostęp do plików
  • Mniej bezpieczne, jeśli źle skonfigurowane

Krok 5: Wybór między Wolumenami a Montowaniami Powiązanymi w Produkcji

Użyj następujących wytycznych.

Kiedy używać Wolumenów Dockera

  • Uruchamianie baz danych, takich jak MySQL lub PostgreSQL
  • Przechowywanie danych aplikacji, które muszą być trwałe
  • Wdrażanie usług produkcyjnych
  • Potrzeba przenośności między serwerami

Kiedy używać Montowań Powiązanych

  • Lokalne środowiska deweloperskie
  • Bezpośrednia edycja kodu lub plików konfiguracyjnych
  • Debugowanie zachowania kontenera
  • Tymczasowe lub testowe konfiguracje

Info

Ważne: Montowania powiązane mogą ujawniać wrażliwe pliki hosta kontenerom, jeśli są źle skonfigurowane. Zawsze weryfikuj ścieżki i uprawnienia.

Weryfikacja i testowanie

Utwórz kontener testowy z wolumenem:

docker run -it -v my_volume:/data --name playground busybox

Wewnątrz kontenera utwórz plik:

echo test > /data/file.txt

Wyjdź z kontenera i usuń go:

docker rm -f playground

Uruchom nowy kontener z tym samym wolumenem:

docker run -it -v my_volume:/data --name playground busybox

Sprawdź plik:

cat /data/file.txt

Oczekiwany wynik: Plik nadal istnieje, co potwierdza trwałość danych.

Cofanie zmian

Aby wyczyścić zasoby, uruchom następujące polecenia:

docker rm -f playground volume_test bind_test

docker volume rm my_volume

docker system prune -f

Info

Ważne: Usunięcie wolumenów trwale usuwa wszystkie przechowywane dane.

Rozwiązywanie problemów

  • Problem: Dane znikają po ponownym uruchomieniu kontenera
    Przyczyna: Nie użyto wolumenu ani montowania powiązanego
    Rozwiązanie: Dołącz trwałe przechowywanie za pomocą wolumenów lub montowań powiązanych
  • Problem: Błędy odmowy dostępu
    Przyczyna: Niezgodność uprawnień katalogu hosta
    Rozwiązanie: Dostosuj uprawnienia za pomocą chmod lub chown
  • Problem: Wolumen nie montuje się poprawnie
    Przyczyna: Niepoprawna ścieżka lub składnia
    Rozwiązanie: Zweryfikuj format montowania i ścieżki

Podsumowanie i kolejne kroki

Nauczyłeś się, jak działa przechowywanie danych w Dockerze i jak utrwalać dane za pomocą wolumenów i montowań powiązanych. Zrozumiałeś również, kiedy używać każdego podejścia w produkcji. Następnie, eksploruj Docker Compose, aby zarządzać aplikacjami wielokontenerowymi i definiować przechowywanie w bardziej uporządkowany sposób.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA