Docker ma trzy typy mocowań danych, które mogą pomóc - objętości, mocowania i tmpfs. Wolume przechowuje dane w systemie plików hosta, ale jest zarządzany przez Docker. Mocowania powiązań pomagają przechowywać dane w dowolnym miejscu w systemie hosta, a użytkownicy mogą bezpośrednio modyfikować pliki z własnych procesów hosta. Mocowania TMPFS są przechowywane tylko w pamięci hosta. Wolume Docker są najlepszą opcją, ponieważ są najbezpieczniejsze w użyciu.
Jak korzystać z woluminów Docker
Wypróbujmy praktyczny przykład. Utworzymy kilka kontenerów Ubuntu, które mają ten sam wolumin.
Najpierw chcemy utworzyć wolumin za pomocą następującego polecenia:
$ Docker Volume Utwórz my-common-vol
Teraz możemy sprawdzić, czy istnieje głośność:
$ Docker Volume LS
Nazwa woluminu sterownika
Lokalny my-common-vol
Możemy dalej sprawdzić głośność, aby sprawdzić jego właściwości:
$ Docker Volume Inspect my-common-vol
[[[
„Createdat”: „2018-04-06T07: 43: 02Z”,
„Driver”: „Lokalny”,
„Etykiety”: ,
„Mountpoint”: "/var/lib/docker/volumes/my-common-vol/_data",
„Nazwa”: „my-common-vol”,
„Opcje”: ,
„Zakres”: „lokalny”
]
Ważne jest, aby pamiętać, że Mountpoint jest w rzeczywistości wewnątrz maszyny wirtualnej, na której działa Docker. Więc nie jest to bezpośrednio dostępne.
Teraz zacznijmy nasz pierwszy serwer z my-common-vol.
(Uwaga dla polecenia Docker Run, możesz użyć opcji -Mount i -V, aby zamontować głośność. Składnia tych dwóch jest różne. Użyjemy najnowszej opcji, ponieważ jest to najnowsze.)
$ Docker Run --Name Server1-Mount Źródło = my-common-vol, target =/app -it ubuntu
Montaż folder my-common-vol to /App na kontenerze Docker Server1. Powyższe polecenie powinno zalogować się do serwera Ubuntu. Z wiersza poleceń przejdź do folderu /App i utwórz plik:
root@1312Ea074055: /# CD /AppMamy więc plik utworzony na serwer1.TXT w folderze /App.
Utwórzmy drugi serwer i zamontuj ten sam wolumen my-common-vol:
$ Docker Run --Name Server2-Mount Źródło = my-common-vol, target =/src -it ubuntu
Teraz możemy przejść do folderu /src w serwerze2, sprawdzić pliki server1 i utworzyć nowy plik:
root@77CD51945461: /# CD /SRCW folderze /src widzimy to utworzone na serwer1.TXT już istnieje. Dodajemy Created-on-Server2.tekst. Możemy sprawdzić Server1 i zobaczyć to utworzone-na-serwer2.Pojawia się txt.
Rozpocznijmy nowy serwer Container3, który będzie miał tylko dostęp tylko do woluminu my-common-vol:
$ Docker Run --Name Server3-Mount Źródło = my-common-vol, cel =/test, czytonly -it ubuntu
Więc stworzyliśmy serwer3 z My-common-vol zamontowanym na /test.
Spróbujmy napisać coś /test:
root@A6620DA1EEA1:/# Test CDMożesz zobaczyć, że nie możemy pisać do My-Common-Vol z Server3.
Możesz usunąć objętości. Ale musisz usunąć wszystkie powiązane pojemniki, zanim będziesz mógł spróbować. W przeciwnym razie otrzymasz taki błąd:
$ Docker Volume rm my-common-vol
Odpowiedź błędu z Daemona: Nie można usunąć głośności: Usuń my-common-vol:
Objętość jest używana - [1312EA07405528BC65736F56692C06F04280779FD283A81F59F8477F28AE35BA,
77CD51945461FA03F572EA6830A98A16ECE47B4F840C2EDFC2955C7C9A6D69D2,
A6620DA1EA1A39D64F3ACDF82B6D70309EE2F8D1F2C6B5D9C98252D5792EA59]
W naszym przypadku możemy usunąć pojemniki i taką głośność:
$ Docker Container RM Server1
$ Docker Container RM Server2
$ Docker Container RM Server3
$ Docker Volume rm my-common-vol
Ponadto, jeśli chcesz zamontować wiele woluminów, opcja „Docker Run” opcja -Mount na to pozwala na to.
Dalsze badanie: