Использование томов - лучший способ обработки данных, которые вы хотите сохранить из контейнера. Использование флага -v
работает хорошо, и вы не должны столкнуться с проблемами с этим.
Вы также можете использовать VOLUME
инструкции в Dockerfile
, что означает, что вам не придется добавлять какие-либо дополнительные параметры во время выполнения, однако они довольно тесно связаны с определенным контейнером, вам нужно использовать docker start
, а чем docker run
, чтобы вернуть данные (или, конечно, -v
в том, который был создан в прошлом, вероятно, в /var/
где-то).
Общим способом обработки томов является создание data volume container с томами, определяемыми -v
Затем, когда вы создаете контейнер приложения, используйте флаг --volumes-from
. Это приведет к тому, что ваш новый контейнер будет использовать те же тома, что и контейнер, в котором вы использовали -v
(ваш контейнер объема данных). Конечно, это может показаться, что вы меняете проблему где-то в другом месте.
Это позволяет легко обмениваться томами с несколькими контейнерами. Возможно, у вас есть контейнер для вашего приложения, а другой для логсташа.
Благодаря Marcus, если я правильно понимаю, -v/приложение только полезно, если я использую контейнеры объем данных (--volumes-с). Он не сохранит никаких данных. Если я не хочу создавать контейнер данных тома, мое единственное решение - связать папку контейнера с хостом? (-v/home/host/app:/home/container/app) Правильно ли это?Было бы неплохо иметь систему, которая автоматически создает том на хосте для хранения данных, но не указывая точку монтирования хоста (поскольку нам нужно убедиться, что точка монтирования узла существует) –
Все тома будут сохраняться в файловой системе хоста до тех пор, пока вы удаляете контейнер. Вы можете использовать тома вообще и все еще иметь данные, если вы снова запустите один и тот же идентификатор контейнера (хотя это не самая лучшая практика). –
@FlorentValdelievre, если вы создаете контейнер данных, тогда вы автоматически получаете каталог для тома в каталоге/var/lib/docker/volume/на хосте. Преимуществом контейнера тома является аспект переносимости, т. Е. Вам не нужно полагаться на определенную иерархию каталогов, устанавливаемую на хост-системе ... это именно то, что вам кажется нужным. Единственное предостережение - это устройство хранения для жилья/var/lib/docker/тома, которое должно иметь емкость для того, что вы вкладываете в объем –