Korzystanie z woluminów Docker do udostępniania danych między kontenerami a komputerem hosta

Korzystanie z woluminów Docker do udostępniania danych między kontenerami a komputerem hosta
Wolume Docker są wykorzystywane do utrzymywania danych z określonego katalogu lub katalogów kontenerów Docker. Więc Twoje dane nie są usuwane, gdy pojemnik zatrzymuje się lub zostaną usunięte.

Możesz także udostępnić wolumin dokera w wielu kontenerach. Porozmawiajmy o scenariuszu, aby dowiedzieć się, dlaczego to ważne.

Powiedzmy, że masz aplikację internetową PHP. Teraz chcesz sprawdzić, czy działa na PHP w wersji 5.4, 7.0, 7.1 i 7.2. Możesz utworzyć wolumin dokera, nazwijmy to Aplikacja internetowa. Następnie skopiuj pliki kodu źródłowego aplikacji internetowej PHP do woluminu Docker Aplikacja internetowa. Następnie możesz tworzyć kontenery różnych wersji PHP i dołączyć głośność Docker Aplikacja internetowa do Webroota z tych wszystkich pojemników. W ten sposób możesz łatwo sprawdzić, jak Twoja aplikacja internetowa działa w różnych wersjach PHP.

W tym artykule pokażę, jak używać woluminów Docker do udostępniania danych między kontenerami a komputerem hosta. Zacznijmy.

Tworzenie tomów Docker:

Zanim możesz dodać wolumin Docker do swojego kontenera, musisz utworzyć wolumin Docker.

Aby utworzyć wolumin dokera (powiedzmy Data1), Uruchom następujące polecenie:

$ Docker Volume Utwórz dane1

Data1 Należy utworzyć wolumin.

Listowanie wolumenów Docker:

Możesz wymienić wszystkie tomy Docker, które utworzyłeś za pomocą następującego polecenia:

Lista woluminów $ Docker

Jak widać, wszystkie tomy Docker są wymienione. W tej chwili mam tylko Data1 Tom Docker. Jeśli stworzę więcej, pojawiłby się tutaj.

Sprawdzanie wolumenów Docker:

Możesz zobaczyć więcej informacji o pewnym tomie dokera (powiedzmy Data1) Z następującym poleceniem:

$ Docker Volume Inspect Data1

Jak widać, wiele informacji o Data1 Tom jest wymieniony w formacie JSON. Najważniejsze jest Punkt Mountpoint. Punkt Mountpoint opowiada o ścieżce lokalnego systemu plików, w którym wolumin jest zamontowany. Tutaj Data1 objętość jest zamontowana na /var/lib/nacker/volume/data1/_data w moim lokalnym systemie plików. Pokażę Ci, jak zmodyfikować dane na temat tomów dokera z komputera hosta w późniejszej sekcji tego artykułu poniżej.

Dodawanie woluminów do pojemników i dzielenie się objętościami między pojemnikami:

Teraz zamierzam utworzyć prosty kontener Docker z HTTPD: 2.4 Obraz Docker do uruchomienia serwera Apache 2. Potem zamierzam zamontować Data1 tom do /usr/local/apache2/htdocs katalog tego kontenera Docker. Podam też pojemnik nazwę (powiedzmy www) po prostu łatwo to zarządzać.

Aby to zrobić, uruchom następujące polecenie:

$ Docker Run -d -it --name = www - -mount source = data1, destying =/usr/local/apache2/htdocs
HTTPD: 2.4

Pojemnik www należy utworzyć.

Teraz sprawdzić, czy Data1 objętość została zamontowana na www kontener, uruchom następujące polecenie:

$ Docker Inspect www

To długa lista informacji. Ale na Wierzchowce, Możesz to zobaczyć, nazwa tomu to Data1, jest zamontowany /usr/local/apache2/htdocs na www pojemnik.

Teraz zamierzam połączyć się z www pojemnik i uruchom grzmotnąć Shell tam z następującym poleceniem:

$ Docker Exec -it WWW Bash

Jak widać, Bash Shell działa.

Teraz utwórzmy prosty plik HTML w /usr/local/apache2/htdocs katalog, w którym Data1 objętość jest zamontowana.

$ echo "hello świat">/usr/local/apache2/htdocs/index.html

Teraz wyjdź z www Kontener dokera z następującym poleceniem:

$ exit

Teraz znajdź adres IP www kontener z następującym poleceniem:

$ Docker Inspect www | Adres GREP

Jak widać, adres IP kontenera WWW to 172.17.0.2 (w moim przypadku).

Kiedy uzyskuję dostęp do www kontener z przeglądarki internetowej, widać, że właśnie utworzona strona jest wyświetlana.

Teraz zamierzam stworzyć kolejny pojemnik www2 i dołącz Data1 tom w ten sam sposób i sprawdź, czy zmiany w Data1 objętość (zamontowana w /usr/local/apache2/htdocs W www I www2 pojemnik) z jednego pojemnika jest widoczny do drugiego pojemnika.

Aby utworzyć nowy kontener www2, i dołącz Data1 Tom do niego uruchom następujące polecenie:

$ Docker Run -d -it --name = www2 - -mount Źródło = data1, Destination =/usr/local/apache2/htdocs
HTTPD: 2.4

Teraz znajdźmy adres IP www2 kontener z następującym poleceniem:

$ Docker Inspect www2 | Adres GREP

Jak widać, otrzymuję tę samą stronę, kiedy uzyskuję dostęp do www2 kontener z przeglądarki internetowej. Oznacza to, że dane z www kontener trwał i udostępniony do www2 pojemnik.

Teraz zamierzam wprowadzić zmiany w indeks.html (w Data1 objętość zamontowana w /usr/local/apache2/htdocs) Strona z www2 pojemnik i sprawdź, czy zmiana odzwierciedla zarówno www I www2 pojemniki.

Jak widać, zmiany wprowadzone na jeden pojemnik (www2 W takim przypadku) jest odzwierciedlony dla drugiego pojemnika (www w tym przypadku).

Dostęp do wolumenów Docker z komputera hosta:

NOTATKA: Aby to działało, musisz być zalogowany jako źródło użytkownik.

Możesz uruchomić następujące polecenie, aby znaleźć ścieżkę Data1 Wolumin dokera w komputerze hosta:

# Docker Volume Inspect Data1

Jak widać, Data1 Tom jest w /var/lib/nacker/volume/data1/_data katalog mojego komputera hosta.

Teraz przejdź do /var/lib/nacker/volume/data1/_data Katalog z następującym poleceniem:

# cd/var/lib/docker/volume/data1/_data

Jak widać, indeks.html Plik, który właśnie utworzyliśmy, jest tam.

# ls

Także zawartość indeks.html Plik jest taki sam.

Teraz edytujmy indeks.html złożyć i sprawdź, czy zmiany są odzwierciedlone w www I www2 pojemniki.

# indeks nano.html

Zmieniłem zawartość indeks.html Plik do tego:

Jak widać, zmiany są odzwierciedlone w www i www2 pojemniki.

Usuwanie woluminów Docker:

Jeśli chcesz, możesz również usunąć wolumin dokera. Aby usunąć tom dokera, powiedzmy Data2, Uruchom następujące polecenie:

$ Docker Volume RM Data2

Tom Docker Data2 należy usunąć na stałe.

W ten sposób udostępniasz tomy Docker między kontenerami a komputerem hosta. Dziękujemy za przeczytanie tego artykułu.