Przechowywanie i udostępnianie z Docker Volumes

Przechowywanie i udostępnianie z Docker Volumes
W Docker możesz zapisać dane na warstwie zapisanej. Ale dane nie utrzymują się po wyłączeniu kontenera. Ponadto przeniesienie danych z jednego pojemnika do drugiego nie jest łatwo. Oczywiście przechowywanie danych i udostępnianie jest czasem konieczne między usługami.

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 /App
root@1312Ea074055:/App# LS
root@1312Ea074055:/App# Touch Created-on-Server1.tekst
root@1312Ea074055:/App# LS
Created-on-Server1.tekst

Mamy 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 /SRC
root@77CD51945461:/src# ls
Created-on-Server1.tekst
root@77CD51945461:/src# touch creed-on-server2.tekst
root@77CD51945461:/src# ls -1
Created-on-Server1.tekst
Created-on-Server2.tekst

W 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 CD
root@A6620DA1EEA1:/TEST# LS -1
Created-on-Server1.tekst
Created-on-Server2.tekst
root@A6620DA1EEA1:/TEST# Touch Creed-on-Server3.tekst
Touch: Nie można dotykać „Created-on-Server3.TXT ': System plików tylko do odczytu

Moż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:

  • https: // dokumenty.doker.com/pamięć/pamięć/
  • https: // dokumenty.doker.com/magazyn/objętości/
  • https: // dokumenty.doker.com/Storage/MOUNTS/
  • https: // dokumenty.doker.com/Storage/TMPFS/
  • https: // www.Digitalocean.com/community/samouczki/instruktaże