Conforme descrito na documentação do Docker em Trabalhando com Volumes, há o conceito dos chamados contêineres somente de dados , que fornecem um volume que pode ser montado em vários outros contêineres, não importa se o contêiner somente de dados está realmente em execução ou não.
Basicamente, isso parece incrível. Mas há uma coisa que não entendo.
Esses volumes (que não mapeiam explicitamente para uma pasta no host por motivos de portabilidade, como afirma a documentação) são criados e gerenciados pelo Docker em alguma pasta interna no host (/var/docker/volumes/…
).
Suponha que eu use esse volume e, em seguida, precise migrá-lo de um host para outro - como faço para transferir o volume? AFAICS tem um ID exclusivo - posso simplesmente copiar o volume e seu contêiner somente de dados de acordo para um novo host? Como faço para descobrir quais arquivos copiar? Ou há algum suporte integrado ao Docker que eu ainda não descobri?
docker run --volumes-from <data container> ubuntu tar -cO <volume path> | gzip -c > volume.tgz
Isso não depende de detalhes de implementação dos volumes. E importe os dados com tar na segunda máquina.