Docker
Woluminy danych Docker
Szukaj…
Wprowadzenie
Woluminy danych dokerów umożliwiają zachowanie danych niezależnie od cyklu życia kontenera. Tomy przedstawiają szereg przydatnych funkcji, takich jak:
Montowanie katalogu hosta w kontenerze, współdzielenie danych między kontenerami za pomocą systemu plików i zachowanie danych w przypadku usunięcia kontenera
Składnia
- wolumin dokera [OPCJE] [POLECENIE]
Montowanie katalogu z lokalnego hosta do kontenera
Możliwe jest zamontowanie katalogu hosta do określonej ścieżki w kontenerze za pomocą opcji wiersza polecenia -v
lub --volume
. Poniższy przykład zamontuje /etc
na hoście do /mnt/etc
w kontenerze:
(on linux) docker run -v "/etc:/mnt/etc" alpine cat /mnt/etc/passwd
(on windows) docker run -v "/c/etc:/mnt/etc" alpine cat /mnt/etc/passwd
Domyślny dostęp do woluminu w kontenerze to odczyt-zapis. Aby zamontować wolumin tylko do odczytu w kontenerze, użyj przyrostka :ro
:
docker run -v "/etc:/mnt/etc:ro" alpine touch /mnt/etc/passwd
Tworzenie nazwanego woluminu
docker volume create --name="myAwesomeApp"
Korzystanie z nazwanego woluminu znacznie ułatwia zarządzanie woluminami. Możliwe jest utworzenie nazwanego woluminu za pomocą polecenia określonego powyżej, ale możliwe jest również utworzenie nazwanego woluminu wewnątrz polecenia docker run
--volume
za pomocą opcji wiersza polecenia -v
lub --volume
:
docker run -d --name="myApp-1" -v="myAwesomeApp:/data/app" myApp:1.5.3
Należy zauważyć, że utworzenie nazwanego woluminu w tej formie jest podobne do montowania pliku / katalogu hosta jako woluminu, z tym wyjątkiem, że zamiast prawidłowej ścieżki określa się nazwę woluminu. Po utworzeniu nazwane woluminy można udostępniać innym kontenerom:
docker run -d --name="myApp-2" --volumes-from "myApp-1" myApp:1.5.3
Po uruchomieniu powyższego polecenia utworzono nowy kontener o nazwie myApp-2
z obrazu myApp:1.5.3
, który współdzieli myAwesomeApp
nazwie myAwesomeApp
z myApp-1
. myAwesomeApp
nazwany myAwesomeApp
jest montowany w /data/app
w kontenerze myApp-2
, tak jak jest montowany w /data/app
w kontenerze myApp-1
.