내 컴퓨터에서 Docker 컨테이너가 실행되고 있습니다.
정전으로 인해 컴퓨터가 충돌합니다. 디스크가 정상적으로 부팅됩니다. 이제 어떻게든 컨테이너에 들어가서 거기에서 데이터를 "구출"하고 싶습니다. 컨테이너 ID를 알고 있습니다.
차이점을 알 수 있지만 /var/lib/docker/aufs/diff
가능하면 충돌 중에 전체 파일 시스템이 필요합니다.
이제 /var/lib/docker/aufs/mnt
아무것도 보이지 않습니다.
을 사용하여 다른 도커를 실행하려고 하면 --with-volumes (ID)
아무것도 표시되지 않습니다.
충돌이 발생하는 동안 실제 데이터를 어떻게 얻을 수 있나요?
답변1
이것이 "올바른 방법"인지는 확실하지 않지만 도움이되었습니다.
docker commit (ID of the crashed container)
그러면 충돌이 발생한 컨테이너에서 새 이미지가 생성되고 해당 ID가 제공됩니다. 이제 새 이미지를 실행하면 됩니다.
docker run -ti (ID of the new image)
이제 안전하게 데이터를 구출할 수 있습니다.
답변2
구글에서 쉽게 검색할 수 있도록 여기에 게시합니다. 원래 출판됨여기.
작동하지 않는 컨테이너에서 복사하는 가장 쉬운 방법은 docker cp입니다.
docker cp <container-name>:<path/inside/container> <path/on/host/>
감사합니다 도커 CP(협회) 마치 파일 시스템의 다른 부분인 것처럼 컨테이너에서 직접 복사할 수 있습니다. 예를 들어 컨테이너 내의 모든 파일을 복원하려면 다음을 수행합니다.
mkdir /tmp/container_temp
docker cp example_container:/ /tmp/container_temp/
재귀적으로 복사하도록 지정할 필요는 없습니다.