Docker
Концепция объемов докеров
Поиск…
замечания
Люди, не знакомые с Docker, часто не понимают, что файловые системы Docker по умолчанию являются временными. Если вы запустите изображение Docker, вы получите контейнер, который на поверхности ведет себя так же, как виртуальная машина. Вы можете создавать, изменять и удалять файлы. Однако, в отличие от виртуальной машины, если вы остановите контейнер и запустите его снова, все ваши изменения будут потеряны - все файлы, которые вы ранее удалили, теперь будут возвращены, а любые новые файлы или изменения, которые вы сделали, не будут присутствовать.
Объемы в контейнерах докеров допускают постоянные данные и обмен данными с хост-машиной внутри контейнера.
A) Запустите контейнер с объемом
[root@localhost ~]# docker run -it -v /data --name=vol3 8251da35e7a7 /bin/bash
root@d87bf9607836:/# cd /data/
root@d87bf9607836:/data# touch abc{1..10}
root@d87bf9607836:/data# ls
abc1 abc10 abc2 abc3 abc4 abc5 abc6 abc7 abc8 abc9
B) Теперь нажмите [cont + P + Q], чтобы выйти из контейнера, не завершая проверку контейнера для контейнера, который работает
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND СОЗДАН СОСТОЯНИЯ ПОРТЫ НАЗВАНИЯ d87bf9607836 8251da35e7a7 "/ bin / bash" Около минуты назад До 31 секунды vol3 [root @ localhost ~] #
C) Запустите «docker inspect», чтобы узнать больше об объеме
[root@localhost ~]# docker inspect d87bf9607836
«Mounts»: [{«Name»: «cdf78fbf79a7c9363948e133abe4c572734cd788c95d36edea0448094ec9121c», «Источник»: «/ var / lib / docker / volume / cdf78fbf79a7c9363948e133abe4c572734cd788c95d36edea0448094ec9121c / _data», «Destination»: «/ data», «Driver»: «local», «Режим»: «», «RW»: true
D) Вы можете присоединить текущий контейнерный контейнер к другим контейнерам
[root@localhost ~]# docker run -it --volumes-from vol3 8251da35e7a7 /bin/bash
root@ef2f5cc545be:/# ls
bin boot data dev и т. д. home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@ef2f5cc545be:/# ls
/ data abc1 abc10 abc2 abc3 abc4 abc5 abc6 abc7 abc8 abc9
E) Вы также можете установить базовый каталог внутри контейнера
[root@localhost ~]# docker run -it -v /etc:/etc1 8251da35e7a7 /bin/bash
Здесь: / etc - каталог хост-компьютера, а / etc1 - цель внутри контейнера