Команда Dockerfile VOLUME
говорит о двух вещах:
Если оператор явно не монтирует том в определенную директорию контейнера, в любом случае создайте там анонимный том.
Никакой шаг Dockerfile никогда не сможет внести дальнейшие изменения в это дерево каталогов.
Как оператор вы можете смонтировать том (либоименованный том или каталог хоста) в контейнер с параметром docker run -v
.Вы можете подключить его к любому каталогу в контейнере, независимо от того, был ли VOLUME
объявлен для него в Dockerfile.
(Так как вы можете использовать docker run -v
независимо от того, объявили вы или нетVOLUME
, и это имеет запутанные побочные эффекты, я бы вообще не стал объявлять VOLUME
в Dockerfiles.)
Как и в обычном Linux, только одна вещь может (полезно) быть смонтирована в любом данном каталоге.При описанной вами настройке данные будут храниться в myvol2
, который вы создаете и монтируете, и они будут видны в /var/www
в контейнере, но на самом деле данные будут храниться только в одном месте.Если вы удалите и заново создадите контейнер без монтирования тома, данных больше не будет.