리눅스2023. 9. 22. 08:53

 

반달가면 이글루에서 백업 - http://bahndal.egloos.com/651149 (2021.9.9)

도커(docker) 이미지로부터 디렉토리 구조와 파일을 추출할 수 있는 프로그램을 발견했다. 당장 쓸 일은 없지만, 혹시 모르니 일단 정리해 두기로.

관련된 블로그 원문은 아래의 링크다.

Unpacking docker image with undocker
https://blog.oddbit.com/post/2015-02-13-unpacking-docker-images/

docker save 명령으로 이미지 파일을 저장할 수 있는데 tar 형식으로 저장된다. (docker save 관련 내용은 이전 게시물을 참고하자. 여기로)

이 tar 파일은 단순히 디렉토리 구조와 파일을 압축한 것이 아니라 내부에 또 다시 여러개의 tar 파일이 있고 좀 복잡하게 되어 있다. 이로부터 디렉토리/파일을 복원하는 undocker.py 스크립트를 만든 모양이다. undocker의 깃허브(github) 페이지는 아래의 링크다.

https://github.com/larsks/undocker

docker save 명령의 출력을 파이프(|)로 undocker.py에 넘기는 방식으로 실행한다. master-branch의 zip 파일은 아래의 링크에서 받을 수 있다.

https://github.com/larsks/undocker/archive/refs/heads/master.zip

zip 파일을 다운로드해서 압축을 푼 후에 아래와 같이 시험해 보았다. 잘 동작하는 듯하다.

# undocker.py에 실행 권한 부여
chmod +x undocker.py
# 이미지을 풀어 저장할 디렉토리 생성
mkdir undocker_out
# "ubuntu" 이미지로부터 디렉토리 구조와 파일을 복원하여 ./undocker_out 디렉토리에 저장
sudo docker save ubuntu | ./undocker.py -o ./undocker_out

728x90
Posted by 반달가면