Зачем в докерфайл добавлять VOLUME /tmp?
Команда VOLUME нужна, чтобы изменяемые данные, появляющиеся во время жизни, хранились на хосте отдельно от файловой системы контейнера, могли быть обработаны/переиспользованы после его удаления и администрируемы через Docker API.
Смотрите, это на самом деле костыль. 
При сборке контейнера эта директива говорит создать некую точку монтирования. И там могут быть (при сборке) расположены некоторые данные, логи или еще что угодно.
Далее, когда вы будете запускать этот контейнер будет автоматически создан указанный volume c теми самыми данными.
Пример который это иллюстрирует есть в официальном руководстве.
https://docs.docker.com/engine/reference/builder/#...