Como inserir o sistema de arquivos no contêiner do docker após uma pane no computador?

1

Eu tinha um contêiner do Docker em execução em um computador.

O computador travou devido a uma falha de energia. O disco arrancou direito, etc, e agora eu quero ir de alguma forma para o contêiner e "salvar" os dados de lá. Eu conheço o ID do contêiner.

Eu posso ver os diffs em /var/lib/docker/aufs/diff ; no entanto, eu preciso do sistema de arquivos inteiro como era durante a falha, se possível.

Em /var/lib/docker/aufs/mnt , não vejo nada.

Quando tentei executar outra janela de encaixe com --with-volumes (ID) , não vi nada lá.

Como chegar aos dados reais, como estavam durante o acidente?

    
por Karel Bílek 22.05.2015 / 23:52

2 respostas

2

Não sei se é "o caminho certo", mas isso me ajudou.

docker commit (ID of the crashed container)

Isso cria uma nova imagem fora do contêiner que caiu e me dá seu ID. Agora eu só tenho que executar a nova imagem ...

docker run -ti (ID of the new image)

e agora posso salvar os dados com segurança.

    
por 23.05.2015 / 00:10
0

Postando isso aqui também para facilitar o googling. Originalmente publicado aqui .

A maneira mais fácil que encontrei para copiar de um contêiner não funcional é o docker cp.

docker cp <container-name>:<path/inside/container> <path/on/host/>

Graças ao docker cp ( link ) você pode copiar diretamente do contêiner como era qualquer outra parte do seu sistema de arquivos. Por exemplo, recuperando todos os arquivos dentro de um contêiner:

mkdir /tmp/container_temp
docker cp example_container:/ /tmp/container_temp/

Note que você não precisa especificar que deseja copiar recursivamente.

    
por 21.02.2017 / 14:37

Tags