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.
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.
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.