Como acessar os dados do contêiner do Docker quando eles não estão mapeados para um volume?

2

Como acessar os dados do contêiner do Docker ( não mapeado para nenhum volume ), quando o contêiner falhou ao iniciar?

Digamos que eu comecei o contêiner assim:

docker run -it --name testContainer ubuntu /entrypoint.sh

e o entrypoint.sh por algum motivo depois falha em ficar rodando (em outras palavras o container praticamente não inicia), mas eu quero ter acesso a alguma data armazenada naquele container (por exemplo: / var / www / html / XYZ), como posso fazer isso?

    
por Mohammed Noureldin 13.08.2017 / 15:55

1 resposta

2

Você pode docker cp em um contêiner parado:

docker cp containername:/root .

isto irá copiar todo o conteúdo (recursivo) da pasta / raiz dentro do container para a sua atual dir $ PWD no host em ./root

Se você precisar de acesso ao shell, o caminho pode ser link

Outra forma seria submeter o contêiner parado a uma imagem temporária e, em seguida, executar um contêiner dessa imagem com um shell disponível:

docker commit containername tmpimage

docker run -it tmpimage /bin/bash

Se a imagem tiver um ENTRYPOINT definido, você deverá substituí-lo:

docker run -it --entrypoint=/bin/bash tmpimage

Altere o bash para ash ou sh se alpine ou outra distro que não tenha bash.

    
por 13.08.2017 / 21:28

Tags