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:
docker volume create my_volume
Uruchamianie kontenera z montowaniem wolumenu:
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:
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
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
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:
docker volume create db_data
Uruchamianie kontenera z bazą danych z zamontowanym wolumenem:
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:
docker volume create config_data
Kopiowanie plików konfiguracyjnych do wolumenu:
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:
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:
docker volume create logs_data
Uruchamianie kontenera z zamontowanym wolumenem dla logów:
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:
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:
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
GO TO FULL VERSION