도커 이미지를 다른 도커레지스트리 옮겨야 하할 수 있다. 이 때 사용 할 수 있는 도커 명령들은 아래와 같다.
docker exprt
docker import
docker save
docker load
이들 명령을 이용해서 도커 이미지를 저장/복구 하거나 다른 레지스트리로 옮겨보자. 그리고 export & import 와 save & load의 차이점도 살펴보자.
시나리오
현재 joinc 사이트를 온-프레미스(서버호스팅)에서 AWS로 이전하는 작업을 하고 있다. joinc는 라이브 코드 실행 기능이 있는데, docker를 이용해서 구현하고 있다. 따라서 현재 사용 중인 "온프레미스 도커 이미지"를 AWS EC2로 이전해야 한다.
"라이브 실행 예제"
package main
import "fmt"
func main(){
fmt.Println("Hello World")
}
온프레미스 환경의 도커 버전정보는 아래와 같다.
# docker version
Client:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5
Built: Fri Nov 20 13:12:04 UTC 2015
OS/Arch: linux/amd64
Server:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5
Built: Fri Nov 20 13:12:04 UTC 2015
OS/Arch: linux/amd64
이전해야 할 컨테이너 이미지의 이름은 runner이다.
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
runner v4 aa39dbd72c05 18 months ago 1.405 GB
AWS EC2의 도커 버전은 아래와 같다.
# docker version
Client:
Version: 18.06.1-ce
API version: 1.38
Go version: go1.10.3
Git commit: e68fc7a215d7133c34aa18e3b72b4a21fd0c6136
Built: Mon Jul 1 18:51:44 2019
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 18.06.1-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: e68fc7a/18.06.1-ce
Built: Mon Jul 1 18:53:20 2019
OS/Arch: linux/amd64
Experimental: false
docker save & load 를 이용한 이전
docker save 명령을 이용해서 하나 이상의 도커 이미지를 tar 포맷으로 출력 할 수 있다. 기본은 표준출력이다. 사용법은 아래와 같다.
docker save [OPTIONS] IMAGE [IMAGE...]
-o 옵션을 이용하면 파일로 저장 할 수 있다.
아래와 같이 runner:v4 이미지를 tar 파일로 져장했다.
# docker save -o runner.tar runner:v4
이 파일을 AWS EC2로 옮겨서 load 했다. load 명령은 아래와 같이 사용한다.
docker load [OPTIONS]
표준입력을 이미지로 저장 할 수 있다. -i옵션을 이용해서 표준입력 대신 파일을 지정 할 수 있다. 아래와 같이 runner.tar 파일을 이미지로 저장했다.
# docker load -i runner.tar
혹은 아래와 같이 표준입력을 이용한 저장도 가능하다.
# cat runner.tar | docker load
이미지가 제대로 생성됐는지 확인해보자.
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
runner v4 f4de9509b5b1 18 months ago 1.4GB
docker export & import 를 이용한 이전
docker export와 import는 도커 이미지가 아닌 컨테이너를 대상으로 한다.
... 계속
소개
시나리오
docker save & load 를 이용한 이전
docker export & import 를 이용한 이전
Recent Posts
Archive Posts
Tags