Внутри Dockerfile VOLUME
помечает каталог как точку монтирования для внешнего тома.Даже если команда docker run не смонтирует существующую папку в эту точку монтирования, docker создаст именованный том для хранения данных.
RUN mkdir /m
делает то, что mkdir
делает в любой системе Unix.Он создает каталог с именем m
в корне файловой системы.
docker run -v ...
связывает каталог хоста с томом внутри контейнера.Он будет работать независимо от того, была ли точка монтирования объявлена как том в Dockerfile, и также создаст каталог, если он не существует.Поэтому ни VOLUME
, ни RUN mkdir
специально не нужны перед использованием этой команды, хотя они могут быть полезны для передачи намерения пользователю.