Linux
docker container backup & restore
하필이면 도대체가
2024. 7. 25. 10:47
docker container backup & restore 방법 정리
아래의 내용은 docker 1.13버전의 container를 20.10 버전으로 업그레이드 하는 과정에서 진행했던 backup & restore 방법을 정리 및 공유하기 위하여 작성한다.
아래는 container의 backup과 restore만을 정리했다.
따라서 docker network와 bind 된 volume(docker run -v로 지정한 그것)은 아래의 내용과 별개로 재구성을 해줘야한다.
backup
- docker commit [container name] [생성할 image name]
- 현재 사용중인 container를 docker image로 생성한다
- 이 때 docker run -v 옵션으로 지정한 폴더의 내용은 저장되지 않는다
- 이는 어차피 host 장비에 저장되어 있기 때문으로 판단된다.
- docker save -o [file name].tar.gz [backup 대상 image]
- docker image를 tar.gz로 저장한다
restore
- docker load -i [file name].tar.gz
- 이 때 file name은 docker image name으로 지정된다
- load가 정상 수행될 경우, docker images에서 확인할 수 있다
- docker run -d [restore된 docker image]
- 이 때 -v, --network, --name 등등의 옵션을 지정하여 기존과 동일한 내용을 container를 복원하도록 한다
추가로 docker save와 docker export의 차이를 정리한다.
아래의 내용은 ChatGPT에게 질문하여 답변 받은 내용을 정리한 것이다
- docker save:
- 이미지를 tar 파일로 저장.
- 이미지의 모든 레이어와 메타데이터 포함.
- docker load를 사용하여 복원.
- docker export:
- 컨테이너의 파일 시스템을 tar 파일로 저장.
- 컨테이너의 상태와 데이터만 포함.
- docker import를 사용하여 복원.