Jak udostępniać dane między kontenerem Docker i systemem hosta za pomocą objętości
- 4499
- 734
- Klaudia Woś
Najłatwiejszym sposobem udostępniania danych między kontenerem Docker a systemem hosta jest użycie wolumenu Dockera. W tym przewodniku przejdziemy instrukcje krok po kroku udostępniania plików między kontenerem Docker i systemem hosta za pomocą woluminów Docker za pośrednictwem wiersza poleceń w Linux.
CZY WIEDZIAŁEŚ?Wolume Docker działają podobnie do wiązania mocowania, ale są preferowaną metodą udostępniania danych między systemem hosta i kontenera Docker, ponieważ aplikacje zewnętrzne nie są w stanie uzyskać dostępu do plików i ich modyfikować.
W tym samouczku nauczysz się:
- Jak używać woluminów do udostępniania danych między kontenerem Docker i systemem hosta
Kategoria | Wymagania, konwencje lub wersja oprogramowania |
---|---|
System | Każda dystrybucja Linux |
Oprogramowanie | Doker |
Inny | Uprzywilejowany dostęp do systemu Linux jako root lub za pośrednictwem sudo Komenda. |
Konwencje | # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny |
Udostępnij dane między kontenerem Docker i hostem
Rozważ następujący przykład.
- Po pierwsze, w systemie hosta tworzymy katalog z jednym plikiem, który chcielibyśmy udostępnić go kontenerowi Docker:
# mkdir dane
- Następnie uruchamiamy kontener Docker i używamy
-v
Opcja zamontowania lokalnego katalogu systemu hosta Data1 do katalogu kontenera/opt/data1
. Należy pamiętać, że jeśli cel nie istnieje, zostanie on utworzony przez polecenie Docker. Ponadto Docker akceptuje jedynie pełną ścieżkę do lokalnego katalogu systemu hosta i z tego powodu musimy prefiksowaćData1
katalog z$ Pwd/
Zmienna środowiskowa, która zwraca pełną ścieżkę do aktualnego katalogu roboczego:# Docker Run -v $ pwd/data1:/opt/data1 -it debian/bin/bash
- W rezultacie powyższego polecenia jest to, że możemy teraz uzyskać dostęp do naszego wcześniej utworzonego pliku
plik 1
Z wewnątrz pojemnika:# CAT/Opt/Data1/File1 Docker Volume Share
To wszystko. Możesz teraz udostępniać dowolne pliki między systemem hosta a kontenerami Docker za pomocą zamontowanego woluminu. Jeśli napotykasz jakiekolwiek błędy, zobacz poniżej sekcję rozwiązywania problemów.
Wniosek
W tym przewodniku nauczyliśmy się udostępniać dane między systemem hosta a kontenerem Docker za pomocą objętości. Jest to najlepszy i najłatwiejszy sposób na udostępnienie danych między dwoma systemami w Linux, wymagając tylko kilku krótkich kroków.
Rozwiązywanie problemów
Jeśli napotykasz następujący błąd:
FATA [0000] Odpowiedź błędu z demona: Nie można wiązać objętości montowania: Data1 Ścieżki głośności muszą być bezwzględne.
Oznacza to, że musisz podać pełną ścieżkę do katalogów źródłowych i docelowych. Wskazówka: pełna ścieżka zawsze zaczyna się od /
.
Możesz również napotkać to uprawnienie odrzucone błąd:
# ls/opt/data1/ls: nie można otworzyć katalogu/opt/data1/: odmowa uprawnień
Ten błąd jest spowodowany przez Selinux działający w lokalnym systemie hosta. Poniższe dwa rozwiązania pomogą rozwiązać ten problem. Po pierwsze, rozwiązanie polega na wyłączeniu Selinux w lokalnym systemie hosta.
# setenforce 0
Ponieważ wyłączenie Selinux może utrudniać integralność systemu hosta, może być łatwiejsze podanie pojemnikowi rozszerzone uprawnienia, z dokera --uprzywilejowany = prawda
opcja:
# Docker Run --privileged = true -v $ pwd/data1:/opt/data1 -it debian/bin/bash
Powiązane samouczki Linux:
- Rzeczy do zainstalowania na Ubuntu 20.04
- Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
- Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
- Mastering Bash Script Loops
- Ubuntu 20.04 Przewodnik
- Linux Pliki konfiguracyjne: Top 30 Najważniejsze
- Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
- Jak podwójnie rozruch Kali Linux i Windows 10
- Hung Linux System? Jak uciec do wiersza poleceń i…
- Ubuntu 20.04 sztuczki i rzeczy, których możesz nie wiedzieć
- « Tworzenie repozytorium pakietów Redhat
- Linux poleca kopię zapasową i przywrócenie bazy danych MySQL »