Ответ 1
Том - это постоянные данные, хранящиеся в /var/lib/docker/volumes/...
Вы можете объявить его в Dockerfile, что означает, что каждый раз, когда контейнер запускается из образа, том создается (пустой), даже если у вас нет опции
-v
.Вы можете объявить это во время выполнения
docker run -v [host-dir:]container-dir
.
объединение двух (VOLUME
+docker run -v
) означает, что вы можете подключить содержимое папки хоста в том, сохраненный контейнером в/var/lib/docker/volumes/...
docker volume create создает том без необходимости определять файл Docker, создавать образ и запускать контейнер. Он используется для быстрого подключения других контейнеров к указанному объему.
Если вы сохранили некоторое содержимое в томе, но с тех пор удалили контейнер (который по умолчанию не удаляет связанный с ним том, если вы не используете docker rm -v), вы можете повторно присоединить указанный том к новому контейнеру ( объявив такой же объем).
См. "Докер. Как получить доступ к тому, который не прикреплен к контейнеру?".
С помощью создания тома Docker легко присоединить именованный том к контейнеру.
docker volume create --name aname
docker run -v aname:/apath --name acontainer
...
# modify data in /apath
...
docker rm acontainer
# let mount aname volume again
docker run -v aname:/apath --name acontainer
ls /apath
# you find your data back!