도커 docker 이미지, 컨테이너 다운 받아서 다른 곳으로 옮기기

2022. 2. 28. 21:47Programming

728x90

도커에서 열심히 사용하던 이미지나 컨테이너를 다른 곳으로 옮기는 방법입니다.

 

저는 aws ec2를 변경할 때, 기존 ec2에서 사용하던 도커 이미지 또는 컨테이너를 옮기는 용도로 사용합니다.

 

도커 컨테이너를 옮기는 방법은 두가지가 있습니다.

a. 컨테이너를 이미지로 만들고, 그 이미지를 파일로 저장해서 다른 ec2로 이미지를 옮기는 방법

b. 컨테이너를 바로 파일로 만들어서 다른 ec2로 옮기는 방법

 

저는 a 방법으로 해봤습니다.

 

1. 현재 도커에서 관리중인 이미지와 사용 중인 컨테이는 아래와 같습니다.

2. ubuntu:18.04 이미지로 잘 사용하고 있었던 my_lab 이름의 컨테이너를 ubuntu_18.04_python_3.6 이름의 이미지로 저장합니다.

   (원래 관리 중이었던 도커 이미지와 같은 이름으로 이미지를 생성했습니다.)

docker commit [컨테이너ID] [저장할 이미지명:태그]

728x90

3. 도커 이미지를 다른 ec2, 또는 도커 환경, 또는 PC로 옮기기 위해, tar 형식으로 압축합니다.

docker save -o [파일명.tar] [저장할 도커 이미지명:태그]

4. 이미지를 옮길 다른 ec2, 또는 도커 환경, 또는 PC에 tar 압축파일을 옮기고 아래와 같이 docker 이미지를 tar 파일로부터 로드합니다.

docker load -i [이미지를 압축한 tar 압축파일.tar]

docker images 명령어를 통해, tar 압축파일로 기존에 사용하던 이미지가 잘 넘어온 걸 확인할 수 있습니다.

 

b 방법도 궁금하신 분은, 아래처럼 해보시면 됩니다.

도커 명령어 중에 export, import를 사용합니다.

# docker export [컨테이너 이름] > [압축할 tar파일명.tar]
docker export red_panda > latest.tar

저장된 tar 파일을 이미지를 올리고 싶은 ec2, 도커 환경, pc로 옮기고 아래의 명령어를 입력합니다.

# docker import [옮겨온 파일명.tar]
docker import /path/to/exampleimage.tgz

 

 

출처는 docker 튜터리얼입니다.

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

 

docker save

docker save: Produces a tarred repository to the standard output stream. Contains all parent layers, and all tags + versions, or specified `repo:tag`, for each argument provided.

docs.docker.com

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

 

docker load

docker load: Load an image or repository from a tar archive (even if compressed with gzip, bzip2, or xz) from a file or STDIN. It restores both images and tags....

docs.docker.com

 

반응형