이미지 추출

도커 이미지를 별도로 저장하여 옮기는 등, 필요에 따라 이미지를 단일 바이너리 파일로 활용해야 할 때가 있다. 방식은 아래와 같이 2가지가 있다.

  1. docker save & load
  2. docker export & import

docker save & load

docker save 명령어는 해당 도커 이미지의 모든 메타데이터를 포함하여 단일 파일로 추출 할 수 있다. 이미지의 모든 레이어 구성, 태그 등의 데이터들이 포함되며 다음과 같이 추출한다.

# docker save -o {파일이름} {이미지이름}
$ docker save -o my_ubuntu_18_04.tar ubuntu:18.04

해당 이미지는 load 명령어를 통해 다시 도커에 등록할 수 있다.

# docker load -i {파일이름}
$ docker load -i my_ubuntu_18_04.tar

docker export & import

saveload 커맨드는 도커 이미지에 해당하는 작업이었다면 exportimport도커 컨테이너에 적용할 수 있다. commit 혹은 tag 명령어등을 통해 컨테이너의 특정 시점을 이미지로 만들면 이것을 그대로 파일로 추출 할 수 있다. 단 save, load 와는 다르게 모드, 커맨드, 레이어 등의 메타데이터는 포함되지 않는다.

# docker export -i {파일이름} {컨테이너이름}
$ docker export -o myubuntu.tar myubuntu

import 커맨드는 파일을 {이미지이름}:{태그} 의 방식으로 불러온다

# docker import {파일이름} {이미지이름}:{태그}
$ docker import myubuntu.tar myubuntu:18.04

권장

위와 같은 방식들은 저장 공간을 비효율 적으로 사용하기 때문에 그렇게 권장되는 방법은 아니다. Dockerfile을 이용하여 레이어 방식의 이미지를 정의하고 해당 이미지를 도커허브나 사설 레포지토리를 통해 배포하는 방식이 권장된다.

Leave a comment