Na documentação diz que a instrução VOLUME cria um ponto de montagem mas criei uma imagem usando:
FROM alpine
RUN mkdir /myvol
RUN echo "hello world" > /myvol/greeting
e consegui mount /myvol
ou qualquer outro caminho no sistema de arquivos de contêineres usando e pude docker run -v vol:/myvol myimage
ver os dados lá na /var/lib/docker/vol/_data
máquina host.
Que diferença faria adicionar VOLUME myvol
ao arquivo Docker?
Após rodar o Dockerfile ( ) será criado
VOLUME /myvol
o Mountpoint ( ) (inspecione com ):/myvol
docker run -it --rm ${YOURCONTAINER_IMAGE} /bin/bash
O Mountpoint será um Docker-Volume temporário em seu Host:
Após rodar (
docker run -v vol:/myvol myimage
) também o Volumevol
será criado e ganha todos os arquivos dentro do seu container em (/myvol
).A diferença é a forma como você o cria (dentro do Dockerfile ou com
docker run -v
).