VOLUMEa instrução torna-se interessante quando você a combina com o volumes-fromparâmetro de tempo de execução.
Dado o seguinte Dockerfile:
FROM busybox
VOLUME /myvolume
Crie uma imagem com:
docker build -t my-bb .
E gire um contêiner com:
docker run --rm -it --name my-first-bb my-bb
A primeira coisa a notar é que você terá uma pasta chamada nesta imagem myvolume. Mas não é particularmente interessante, pois quando sairmos do contêiner o volume também será removido.
Crie um arquivo vazio nesta pasta, então execute o seguinte no contêiner:
cd myvolume
touch hello.txt
Agora gire um novo contêiner, mas compartilhe o mesmo volume com my-first-bb:
docker run --rm -it --volumes-from my-first-bb --name my-second-bb my-bb
Você verá que my-second-bbcontém o arquivo hello.txtna myvolumepasta.
Depois de sair de ambos os contêineres, seu volume também será removido.