Em primeiro lugar, você precisa localizar o diretório do docker. No Linux, talvez você possa encontrá-lo em /var/lib/docker
.
Agora podemos descobrir o conteúdo dessa mágica, mas nosso objetivo principal agora é o aufs
diretório e exatamente o diff
subdiretório.
Aqui podemos encontrar diffs assim, é um commit ou que você pode enviar. Portanto, se você iniciar um contêiner, ele terá um ID e uma imagem inicial (abaixo diff
) e um diff
diretório próprio .
Se você somar esses dois diretórios, obterá o site do seu contêiner (talvez?). Claro que se você tiver commits sobre isso vai ser um pouco complicado, mas na maioria das vezes eu executo uma imagem e quando não preciso deleto. Se eu quiser modificar a imagem, faço uma nova imagem inicial.
Se você tiver volumes, poderá encontrá-los em, /var/lib/docker/volumes
por exemplo. Portanto, se você executar um contêiner simples, todos os seus arquivos serão armazenados em seu próprio diff.
Roteiro
DIFFPATH="/var/lib/docker/aufs/diff"; \
(for d in `docker ps -q`; do du -s ${DIFFPATH}/${d}*; done;) | \
sed -e 's/-init//g' | \
awk '{ sum[$2] += $1 }; END { for (path in sum) { print sum[path]/1024"M", path } }'
Resultado
121.125M /var/lib/docker/aufs/diff/5dd90664d4021be8949fcf0b0ad7770216cf667a8f80b1336f7ae23a11aaaa2d
658.043M /var/lib/docker/aufs/diff/afc7176ce9aea02839b380823d4c7fec7f74569172f113e5ce43c168b026d7ae