CodeGym /Kursy /Docker SELF /Montowanie woluminów w kontenery

Montowanie woluminów w kontenery

Docker SELF
Poziom 19 , Lekcja 2
Dostępny

3.1 Podstawy montowania wolumenów

Montowanie wolumenów (volumes) do kontenerów to jedna z kluczowych funkcji Dockera, która pozwala na przechowywanie danych poza kontenerami, zapewniając ich długoterminowe przechowywanie i dostępność. Wolumeny mogą być wykorzystywane do różnych celów, takich jak przechowywanie plików konfiguracyjnych, baz danych, logów i innych ważnych danych. W tym wykładzie omówimy, jak montować wolumeny do kontenerów, i podamy praktyczne przykłady.

Podstawy montowania wolumenów

Wolumeny, jak już powiedzieliśmy, istnieją niezależnie od cyklu życia kontenerów. Są przechowywane w specjalnym katalogu na maszynie hosta i mogą być podłączane do dowolnego kontenera.

Komenda do montowania wolumenów

Wolumeny są montowane do kontenerów za pomocą parametrów -v lub --mount przy uruchamianiu kontenera.

3.2 Parametr -v

Przykłady użycia parametru -v

1. Montowanie wolumenu do kontenera

Tworzenie wolumenu i jego montowanie do kontenera:

Tworzenie wolumenu:

Terminal

docker volume create my_volume

Uruchamianie kontenera z montowaniem wolumenu:

Terminal

docker run -d --name my_container -v my_volume:/app nginx

W tym przykładzie wolumen my_volume jest montowany do katalogu /app kontenera my_container

2. Montowanie kilku wolumenów

Możesz zamontować kilka wolumenów w jednym kontenerze:

Terminal

docker run -d --name my_container -v volume1:/app/data -v volume2:/app/logs nginx

W tym przykładzie wolumen volume1 jest montowany do katalogu /app/data, a wolumen volume2 — do katalogu /app/logs.

3.3 Parametr --mount

Parametr --mount zapewnia bardziej szczegółowy sposób montowania wolumenów, z możliwością określenia różnych parametrów.

1. Montowanie wolumenu z użyciem --mount

Terminal

docker run -d --name my_container --mount source=my_volume,target=/app nginx

Ten przykład jest podobny do poprzedniego z użyciem -v, ale korzysta z bardziej szczegółowej składni.

2. Montowanie z dodatkowymi parametrami

Terminal

docker run -d --name my_container --mount source=my_volume,target=/app,readonly nginx

W tym przykładzie wolumen jest montowany w trybie tylko do odczytu (readonly).

3.4 Przykłady praktyczne

Przykład 1: Użycie wolumenów dla bazy danych

Tworzenie i użycie wolumenu do przechowywania danych bazy danych.

Tworzenie wolumenu:

Terminal

docker volume create db_data

Uruchamianie kontenera z bazą danych z zamontowanym wolumenem:

Terminal

docker run -d --name postgres -e POSTGRES_PASSWORD=mysecretpassword -v 
db_data:/var/lib/postgresql/data postgres

W tym przykładzie dane bazy PostgreSQL są zapisywane w wolumenie db_data.

Przykład 2: Użycie wolumenów dla plików konfiguracyjnych

Tworzenie wolumenu do przechowywania plików konfiguracyjnych i montowanie go w kontenerze.

Tworzenie wolumenu:

Terminal

docker volume create config_data

Kopiowanie plików konfiguracyjnych do wolumenu:

Terminal

docker run --rm -v config_data:/app busybox sh -c "echo 'configuration data' > /app/config.txt"

Uruchamianie kontenera z użyciem wolumenu dla plików konfiguracyjnych:

Terminal

docker run -d --name my_app -v config_data:/app/config nginx

W tym przykładzie pliki konfiguracyjne są przechowywane w wolumenie config_data, który jest montowany do katalogu /app/config kontenera.

Przykład 3: Logi kontenera

Tworzenie wolumenu do przechowywania logów kontenera i montowanie go w kontenerze.

Tworzenie wolumenu:

Terminal

docker volume create logs_data

Uruchamianie kontenera z zamontowanym wolumenem dla logów:

Terminal

docker run -d --name my_app -v logs_data:/var/log/nginx nginx

W tym przykładzie logi Nginx są zapisywane w wolumenie logs_data.

3.5 Sprawdzanie zawartości wolumenów

Możesz sprawdzić zawartość wolumenu, montując go do tymczasowego kontenera.

Przykład

Uruchomienie tymczasowego kontenera z zamontowanym wolumenem:

Terminal

docker run --rm -v my_volume:/app busybox ls /app

Ten przykład pokaże zawartość wolumenu my_volume.

Usuwanie wolumenów

Usunięcie wolumenu, który nie jest już używany.

Przykład

Usunięcie wolumenu:

Terminal

docker volume rm my_volume

Jeśli wolumen jest używany przez kontener, Docker wyświetli błąd. Upewnij się, że kontenery używające wolumenu zostały zatrzymane i usunięte

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