본문 바로가기

Development/Docker&Kubernetes

Docker 이미지를 파일(TAR)로 저장하고 다른 서버에서 사용하는 방법

Docker 이미지를 다른 서버로 옮기거나 백업해야 하는 경우가 있습니다. 이럴 때는 docker save 명령어를 사용하면 이미지를 하나의 파일(.tar)로 저장할 수 있습니다.

이번 글에서는 Docker 이미지를 파일로 저장하는 방법과 다시 불러오는 방법까지 함께 알아보겠습니다.


Docker 이미지를 파일로 저장하기

Docker 이미지를 파일로 저장하려면 docker save 명령어를 사용합니다.

docker save -o myimage.tar myimage:latest

예를 들어 nginx:latest 이미지를 저장하려면 다음과 같이 실행합니다.

docker save -o nginx.tar nginx:latest

또는 리다이렉션을 사용할 수도 있습니다.

docker save nginx:latest > nginx.tar

여러 개의 이미지를 하나의 파일로 저장하기

여러 개의 이미지를 함께 저장하는 것도 가능합니다.

docker save -o images.tar nginx:latest redis:7 ubuntu:24.04

이렇게 생성된 images.tar 파일에는 지정한 모든 이미지가 포함됩니다.


이미지를 압축해서 저장하기

Docker 이미지는 용량이 큰 경우가 많기 때문에 gzip으로 압축하는 것이 일반적입니다.

docker save nginx:latest | gzip > nginx.tar.gz

복원할 때는 다음과 같이 실행합니다.

gunzip -c nginx.tar.gz | docker load

저장한 이미지를 다시 불러오기

저장한 이미지는 docker load 명령어를 이용해 복원할 수 있습니다.

docker load -i nginx.tar

또는

docker load < nginx.tar

복원이 완료되면 이미지 목록에서 확인할 수 있습니다.

docker images

docker save와 docker export의 차이

많은 분들이 docker save와 docker export를 헷갈려 합니다.

명령어대상특징

docker save Image 이미지 레이어와 메타데이터까지 모두 저장
docker export Container 컨테이너의 파일 시스템만 저장

이미지를 다른 서버로 옮기거나 백업하려는 목적이라면 docker save와 docker load를 사용하는 것이 올바른 방법입니다.


다른 서버로 이미지 옮기기

1. 원본 서버

docker save -o myapp.tar myapp:v1

2. 파일 복사

scp나 rsync 등을 이용해 myapp.tar 파일을 대상 서버로 복사합니다.

3. 대상 서버

docker load -i myapp.tar
docker run myapp:v1

이제 원본 서버와 동일한 이미지를 사용할 수 있습니다.


마무리

Docker 이미지를 파일로 저장할 때는 docker save, 복원할 때는 docker load를 사용하면 됩니다. 용량이 큰 경우에는 gzip으로 압축하여 보관하거나 전송하면 효율적으로 관리할 수 있습니다.

Docker 환경을 운영하거나 Kubernetes 클러스터에 이미지를 배포해야 하는 경우 자주 사용하는 기능이므로 함께 익혀두면 많은 도움이 됩니다.

728x90
반응형