SW Engineering/DevOps, SRE

Docker Image 추출

SungWookKang 2019. 3. 27. 07:24
반응형

Docker Image 추출

 

·         Version : Docker

 

지난 포스트에 docker commit 명령을 사용하여 이미지를 생성한 다음 docker hub 사용하여 이미지를 공유하는 방법에 대해서 다루었다.

·         도커 이미지 생성 : http://sqlmvp.kr/221461385385

 

이번 포스트에서는 이미지 파일을 단일 바이너리 파일로 저장하는 방법과 저장된 이미지 파일을 로드 하는 방법에 대해서 살펴본다.

 

 이미지를 파일로 추출하는 명령은 docker save이다. 명령을 사용하면 이미지의 모든 메타 데이터를 포함하는 하나의 파일로 추출할 있다.

docker save [option] image [image]

docker save busybox > busybokx.tar

docker save --output busybox.tar busybox 

docker save -0 fedora-latest.tar fedora:latest

·         --output, -o : STDOUT 대신 파일에 쓰기

 


추출된 이미지는 docker load 명령으로 도커에 다시 로드할 있다. 이미지를 로드하면 이전의 이미지와 동일한 이미지가 도커 엔진에 생성된다.

docker load [OPTION]

docker load < busybox.tar

docker load --input fefora.tar

·         --input, -i : STDIN 대신  tar 아카이브 파일에서 읽기

·         --quiet, -q : 부하 출력 억제

 

 

docker save, load 비슷한 기능을 하는 명령으로 docker export, import 있다.

export 명령은 컨테이너의 파일 시스템을 tar 파일로 추출하고 import 추출된 파일을 이미지로 다시 저장한다. export 명령은 컨테이너와 연관된 볼륨의 내용을 내보내지는 않는다. 볼륨이 컨테이너의 기존 디렉터리 위에 마운트 되면 docker export 볼륨의 내용이 아닌 기본 디렉토리의 내용을 내보낸다.

docker export [OPTIONS] CONTAINER

docker export red_panda > latest.tar

docker export –output=”latest.tar” red_panda

·         --output, -o : SDTOUT대신 파일에 쓰기

 

Import 명령을 사용할 STDIN에서 직접 데이터를 가져오기 위해 URL또는 –(대시) 지정할 있다. URL 파일 시스템이나  Docker 호스트의 개별 파일(.tar, .tar.gz, .tgz, .bˆp, .tar.xz, .txz) 포함하는 아카이브를 가리킬 있다. 아카이브를 지정하면  Docker 컨테이너에서 /(root) 기준으로 아카이브에 압축 해제 한다. 개별 파일을 지정하는 경우 호스트 전체 경로를 지정해야 한다. 원격에서 가져오려면 http://또는 https:// 시작하는 URL프로토콜을 사용한다.

docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

docker import http://example.com/exampleimage.tgz

docker import /path/to/exampleimage.tgz

·         --change, -c : 생성된 이미지에 dockerfile 적용

·         --message, -m : 가져온 이미지에 커밋 메시지 설정

·         --platform : 서버가 멀티 플랫폼 가능하면 플랫폼 설정

 

 

 

[참고자료]

·         docker save : https://docs.docker.com/engine/reference/commandline/save/

·         docker load : https://docs.docker.com/engine/reference/commandline/load/

·         docker export : https://docs.docker.com/engine/reference/commandline/export/

·         docker import : https://docs.docker.com/engine/reference/commandline/import/

 

 

 

2019-02-11 / Sungwook Kang / http://sqlmvp.kr

 

Docker, 이미지 추출, docke save, docker load, docker import, docker export, 도커 로드

반응형