Podczas pracy nad projektem programistycznym w Docker, programiści zwykle chcą dokonywać modyfikacji w kodzie i zobaczyć zmiany natychmiastowe bez odbudowy kontenera. W tej sytuacji użyj mocowania wiązania, aby zamontować katalog kodu na lokalnym komputerze hosta w kontenerze. Po tym modyfikacje dokonane na hoście są natychmiast odzwierciedlone w pojemniku. Ponadto jest to przydatne, gdy pojemnik jest usuwany lub odrzucony, ponieważ dane nie są utracone.
Ten artykuł ilustruje:
Co to jest montowanie Docker Bind?
Docker Bind Mount pozwala użytkownikom na mapowanie konkretnego pliku/katalogu na komputerze hosta na pliku/katalogu w kontenerze. W ten sposób użytkownicy mogą udostępniać dane między hostem a kontenerem, a także utrzymywać dane nawet po zatrzymaniu lub usunięciu kontenera. Wszelkie zmiany wprowadzone w plikach w udostępnionym katalogu lub pliku są widoczne zarówno z kontenera, jak i komputera hosta.
Jak działa montaż w Docker?
Weźmy przykład i zobaczmy, jak działa montaż wiązania w Docker. Załóżmy, że mamy pusty katalog „Test" zlokalizowany w "C: \ Docker„W systemie lokalnym. Teraz chcemy uzyskać dostęp do „Test„Treść katalogu w lokalizacji”/App”Z wnętrza konkretnego pojemnika. W tym przykładzie uruchom pojemnik z oficjalnego obrazu Dockera I.mi., "nginx”I wykorzystaj mocowanie wiązania, aby zamontować określony katalog z maszyny hosta do pojemnika.
Aby uzyskać lepsze zrozumienie, wykonaj podane kroki.
Krok 1: Powiązaj katalog montowania z komputera hosta do kontenera
Najpierw skorzystaj z „Docker Run -d -name -v: „Polecenie i uruchom pojemnik. Wiąże katalog montowania z maszyny hosta do pojemnika:
Docker Run -d --Name MyCont -v C:/Docker/Test:/App nginx: najnowszy
Tutaj:
To polecenie utworzyło kontener i pozwolił mu uzyskać dostęp do plików z komputera hosta i ułatwianie zarządzania trwałością danych.
Krok 2: Utwórz plik w katalogu źródłowym na komputerze hosta
Następnie przejdź do ścieżki katalogu źródłowego I.mi., "C:/Docker/Test”Na komputerze hosta i utwórz w nim zwykły plik tekstowy. Na przykład stworzyliśmy „Próbny" plik:
Krok 3: Uzyskaj dostęp do pliku maszyny hosta wewnątrz kontenera
Teraz wpisz podwładne polecenie, aby uzyskać dostęp do zawartości kontenera i uruchom polecenia w nim:
Docker Exec -it MyCont Bash
Po tym, powłoka pojemnika otworzy się.
Następnie wymień zawartość kontenera za pomocą dostarczonego polecenia:
LS
Na powyższym zrzucie ekranu można zobaczyć całą zawartość pojemnika. Wybierz żądany katalog i przejdź do niego.
Przekierować do „App„Katalog:
Aplikacja CD
Następnie wymień „App„Treść katalogu w celu weryfikacji pliku maszyny lokalnej jest dostępna w nim:
LS
Można zauważyć, że „Próbny.tekst„Plik jest dostępny w pojemniku i możemy uzyskać do niego dostęp.
Krok 4: Utwórz plik wewnątrz kontenera
Następnie utwórz kolejny plik wewnątrz kontenera za pomocą „dotykać" Komenda:
dotknij nowego.tekst
Stworzyliśmy „nowy.tekst" plik.
Następnie zweryfikuj nowo utworzony plik za pomocą poniższego polecenia:
LS
Widać, że plik „nowy.tekst”Został z powodzeniem utworzony w pojemniku.
Krok 5: Sprawdź plik w systemie lokalnym
Na koniec przejdź do ścieżki maszyny lokalnej i sprawdź, czy „nowy.tekst„Plik jest dostępny lub nie:
Jak widać, „nowy.tekst„Plik jest dostępny na komputerze lokalnym i możemy uzyskać do niego dostęp. Wskazuje to, że modyfikacje są również odzwierciedlone na komputerze lokalnym.
Krok 6: Usuń kontener Docker
Teraz usuń pojemnik za pomocą „Docker RM”Polecenie wraz z nazwą kontenera:
Docker RM Mycont
„„MyCont„Pojemnik został pomyślnie usunięty.
Krok 7: Upewnij się, że dane utrzymane na komputerze lokalnym
Po usunięciu kontenera sprawdź, czy dane utrzymywały się na komputerze lokalnym, nie:
Jak widać, zmiany utrzymywały się nawet po usunięciu pojemnika do montażu.
Wniosek
Docker Bind Mount służy do mapowania katalogu lub pliku z systemu hosta do kontenera. Tworzy łącze między określonym katalogiem lub plikami na hoście a systemem plików kontenera. Ułatwia to i łatwe w radzeniu sobie lub pracy z plikami przechowywanymi poza kontenerem. Wszelkie zmiany wprowadzone w plikach w udostępnionym katalogu lub pliku zostaną odzwierciedlone zarówno w hosta, jak i kontenerze. W tym artykule wyjaśniono na temat Docker Bind Mount i jego pracy w Docker.