Maxima's Lab

[Docker] Docker Image 분할 압축 및 해제 방법 본문

Docker

[Docker] Docker Image 분할 압축 및 해제 방법

Minima 2024. 4. 17. 21:57
728x90
SMALL

안녕하세요, 오늘은 Docker Image를 분할 압축하는 방법에 대해서 알아보겠습니다.

 

Docker Image를 생성하다보면 대용량 Docker Image가 생성되어 해당 Docker Image를 다른 PC로 복사하지 못하는 것을 확인할 수 있습니다. 이를 해결하기 위해 각 Docker Image를 분할 압축하여 다른 PC로 전달 후 분할된 Files을 다시 결합시켜 해당 Docker Image를 Load 하는 방법입니다.

 

먼저, 다음의 예시와 같이 용량이 큰 Docker Image를 Pull 합니다.

 

docker pull pytorch/pytorch:2.2.2-cuda12.1-cudnn8-devel

 


 

Docker Image를 호스트 시스템에 저장하는 코드는 다음과 같습니다.

 

docker save pytorch/pytorch:2.2.2-cuda12.1-cudnn8-devel > pytorch_save.tar

 

위의 코드는 "pytorch/pytorch:2.2.2-cuda12.1-cudnn8-devel" Docker 이미지를 pytorch_save.tar 파일로 저장합니다.

 


 

이어서, 해당 파일을 XZ 형식으로 압축하는 코드입니다.

 

xz -z -v -T 0 pytorch_save.tar

 

해당 명령어의 결과로 pytorch_save.tar.xz 파일이 생성되게 됩니다.

 


다음은 위의 결과로 생성된 pytorch_save.tar.xz 파일을 여러 개의 작은  파일로 분할하는 코드입니다.

 

split -b 1G -d pytorch_save.tar.xz pytorch_save_part_

 

위의 코드는 pytorch_save.tar.xz 파일을 1G(1 기가) 씩 여러개의 작은 파일로 분할합니다.

 


분할된 작은 파일들을 원래의 압축 파일로 재생성 후 XZ 압축 파일을 해제 후 Docker 이미지를 로드 하는 과정은 다음과 같습니다.

 

cat pytorch_save_part_* > pytorch_save.tar.xz
xz -d -v pytorch_save.tar.xz
docker load < pytorch_save.tar

 


지금까지, Docker 이미지를 분할 압축 및 해제 후 로드하는 과정에 대해서 알아보았습니다.

감사드립니다.

728x90
LIST
Comments