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 iniciei o container assim:
docker run -it --name testContainer ubuntu /entrypoint.sh
e entrypoint.sh
por algum motivo depois não consegue ficar rodando (ou seja, o container praticamente não inicia), mas quero ter acesso a alguma data armazenada nesse container (ex. /var/www/html/XYZ), Como posso fazer isso?
Você pode
docker cp
em um contêiner parado:isso copiará todo o conteúdo (recursivo) da pasta /root dentro do contêiner para o seu diretório atual $PWD no host em ./root
Se você precisar de acesso ao shell, o caminho pode ser https://github.com/jpetazzo/nsenter
Outra maneira seria confirmar o contêiner interrompido em 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ê deve substituí-lo:
docker run -it --entrypoint=/bin/bash tmpimage
Altere o bash para ash ou sh se alpine ou outra distro não tiver bash.