No Docker, como posso compartilhar arquivos entre contêineres e salvá-los em uma imagem?
Quero confirmar os dados no volume compartilhado de um contêiner em uma imagem. Eu não consigo fazer isso? Eu meio que tenho a impressão de que talvez isso não seja possível no Docker, mas isso parece totalmente em desacordo com toda a filosofia de não deixar dados no host, então parte de mim acha que deve haver uma maneira de fazer isso.
1. Terminal 1Inicie um contêiner no Terminal 1 com um volume.
$ docker run -it -v /data ubuntu:14.10 /bin/bash
root@19fead4f6a68:/# echo "Hello Docker Volumes." > /data/foo.txt
2. Terminal 2Inicie um segundo contêiner no Terminal 2, o arquivo do contêiner 1 está lá para que os volumes do docker estejam todos funcionando.
$ docker run -it --volumes-from 19fead4f6a68 ubuntu:14.10 /bin/bash
root@5c7cdbfc67d8:/# cat /data/foo.txt
Hello Docker Volumes.
3. Terminal 3Meu entendimento é que eu só posso confirmar diffs em imagens, para verificar quais são os diffs nos dois contêineres. Por alguma razão bizarra, minhas alterações não aparecem! ??
$ docker diff 19fead4f6a68
A /data
$ docker diff 5c7cdbfc67d8
A /data
4. De volta ao Terminal 1Eu crio um arquivo fora da pasta de volume
root@19fead4f6a68:/# echo "Docker you are a very strange beast...." > /var/beast.txt
5. De volta ao terminal 3Agora temos algumas alterações que podemos confirmar, embora eu esteja bastante frustrado, pois esses não são os dados do volume que eu precisava compartilhar com meu outro contêiner.
$ docker diff 19fead4f6a68
A /data
C /var
A /var/beast.txt
Claramente, isso ocorre por design. Alguém tem alguma idéia de por que o docker não me permite salvar dados de volume em uma confirmação? Existe alguma maneira de compartilhar arquivos entre contêineres e salvá-los em uma imagem? Eu sinto que deve estar faltando algo? Especialmente para o fim do compartilhamento de dados, evitando as dependências do host.