CodeGym /Kursy /Docker SELF /Użycie bindów

Użycie bindów

Docker SELF
Poziom 19 , Lekcja 4
Dostępny

5.1 Idea powiązanych katalogów (bind mounts)

Montowanie katalogów hosta w kontenery za pomocą powiązanych katalogów (bind mounts) to potężna funkcja Dockera, która pozwala kontenerom bezpośrednio korzystać z plików i katalogów znajdujących się w systemie hosta. Jest to szczególnie przydatne w rozwoju, testowaniu i konfiguracji, kiedy trzeba korzystać z lokalnych plików bez ich kopiowania do kontenera. W tym wykładzie omówimy, jak używać powiązanych katalogów, podamy przykłady i najlepsze praktyki.

Powiązane katalogi pozwalają montować konkretne katalogi lub pliki z systemu hosta w kontenery. To różni się od volumes, które są zarządzane przez Dockera i przechowywane w specjalnym katalogu.

Zalety używania powiązanych katalogów

  1. Bezpośredni dostęp do plików hosta: Kontenery mogą bezpośrednio korzystać i modyfikować pliki znajdujące się na hoście.
  2. Wygoda w programowaniu: Programiści mogą modyfikować pliki na hoście i widzieć te zmiany w kontenerach w czasie rzeczywistym.
  3. Elastyczność: Każdy katalog na hoście może być zamontowany w kontener.

Komenda do montowania powiązanych katalogów

Powiązane katalogi montuje się za pomocą parametrów -v lub --mount podczas uruchamiania kontenera.

5.2 Przykłady użycia parametru -v

1. Montowanie katalogu hosta w kontenerze

Najprostszy przykład montowania katalogu hosta do kontenera:

Terminal

docker run -d --name my_container -v /path/on/host:/path/in/container nginx

W tym przykładzie katalog /path/on/host na hoście jest montowany jako katalog /path/in/container wewnątrz kontenera nginx.

2. Montowanie pliku hosta w kontenerze

Możesz również montować pojedyncze pliki:

Terminal

docker run -d --name my_container -v /path/on/host/config.conf:/etc/nginx/nginx.conf nginx

W tym przykładzie plik konfiguracyjny config.conf na hoście jest montowany jako plik konfiguracyjny nginx.conf wewnątrz kontenera.

5.3 Przykłady użycia parametru --mount

Parametr --mount oferuje bardziej szczegółowy sposób montowania zewnętrznych katalogów z możliwością określenia różnych parametrów.

1. Montowanie katalogu za pomocą --mount

Terminal

docker run -d --name my_container --mount type=bind,source=/path/on/host,target=/path/in/container nginx

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

2. Montowanie w trybie tylko do odczytu

Terminal

docker run -d --name my_container --mount 
type=bind,source=/path/on/host,target=/path/in/container,readonly nginx

W tym przykładzie katalog jest montowany w trybie tylko do odczytu, co zapobiega zmianom plików w kontenerze.

5.4 Praktyczne przykłady

Do tworzenia aplikacji webowej możesz zamontować katalog z kodem źródłowym na hoście w kontenerze.

Tworzenie katalogu z kodem źródłowym na hoście:

Terminal

mkdir -p ~/my_web_app
echo "Witaj, Świecie!" > ~/my_web_app/index.html

Uruchomienie kontenera z montowaniem katalogu:

Terminal

docker run -d --name web_dev -v ~/my_web_app:/usr/share/nginx/html nginx

Teraz wszelkie zmiany w katalogu ~/my_web_app na hoście będą natychmiast widoczne w kontenerze.

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

Możesz zamontować pliki konfiguracyjne z katalogu na hoście w kontenerze.

Tworzenie pliku konfiguracyjnego na hoście:

Terminal

echo "user www-data;" > ~/nginx.conf

echo "worker_processes auto;" >> ~/nginx.conf

Uruchomienie kontenera z montowaniem pliku konfiguracyjnego:

Terminal

docker run -d --name nginx_custom -v ~/nginx.conf:/etc/nginx/nginx.conf nginx

W tym przykładzie plik konfiguracji Nginx na hoście jest używany wewnątrz kontenera.

5.5 Sprawdzanie zamontowanych katalogów i plików

Możesz sprawdzić zawartość zamontowanych katalogów i plików, używając komendy docker exec do wykonania poleceń wewnątrz kontenera.

Przykład

Sprawdzanie zawartości katalogu:

Terminal

docker exec -it my_container ls /path/in/container

Sprawdzanie zawartości pliku:

Terminal

docker exec -it my_container cat /path/in/container/config.conf

Usuwanie powiązanych katalogów

Powiązane katalogi nie są zarządzane bezpośrednio przez Dockera, dlatego ich usunięcie odbywa się na poziomie systemu plików hosta.

Przykład

Usuwanie powiązanego katalogu na hoście:

Terminal

rm -r /path/on/host
1
Опрос
Zarządzanie danymi w Dockerze,  19 уровень,  4 лекция
недоступен
Zarządzanie danymi w Dockerze
Zarządzanie danymi w Dockerze
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION