Recent Posts
Recent Comments
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
관리 메뉴

ㅇ.ㅇ

[Docker] 도커 이미지 파일 변환 본문

Docker

[Docker] 도커 이미지 파일 변환

yun_ 2024. 10. 20. 23:37
반응형

 

 

Q. 도커 이미지를 war 파일처럼 파일 전송 같은 형식으로 전송이 가능할까?

A. 직접적으로 파일 전송 방식으로 Docker 이미지를 다른 시스템으로 전송하는 것은 기본적으로 지원되지 않는다. 그러나, Docker 이미지를 저장하고 전송할 수 있는 방법은 있다. 명령어를 사용하여 이미지를 TAR 아카이브 파일로 저장할 수 있고, 이 파일을 다른 시스템으로 전송한 후 명령어를 통해 도커 이미지로 다시 로드할 수 있다!

도커 이미지 tar 파일 변환

  • 즉, 위 방법을 사용하면 Docker 이미지를 TAR 아카이브 파일로 저장하여, 이메일, USB 드라이브, 클라우드 스토리지 등을 통해 다른 컴퓨터로 전송하여 사용할 수 있다. 이러한 방법은 인터넷 연결 없이도 Docker 이미지를 공유할 수 있는 효과적인 방법으로 보인다.
  • 이러한 방식을 사용하였을 시, Docker 레지스트리를 사용하지 않아도 되며, 인터넷 연결이 제한적이거나 보안상의 이유로 레지스트리를 사용하면 안될 때도 유용할 수 있다. 단, 버전관리, 공유, 자동화 등의 이점을 가진 레지스트리의 장점은 사용하지 못한다.

명령어

(1) 도커 이미지 -> tar 파일

  • docker save [옵션] [파일명] [이미지명]
    • 옵션 -o : 저장할 파일명 지정
    • docker save -o test.tar test:1.2.3

(2) 도커 tar -> 도커 이미지 로드

  • docker load -i tar파일명
    • docker load -i test.tar

(3) 도커 컨테이너 -> tar 파일

  • docker export [컨테이너idor이름] > test.tar

(4) tar 파일 -> 도커 컨테이너

  • docker import <파일 or URL> - [image name[:tag name]]

<중요>

  • export/import 와 save/load의 차이
    • docker export의 경우 컨테이너를 동작하는데 필요한 모든 파일이 압충된다. 즉, tar파일에 컨테이너의 루트 파일시스템 전체가 들어있는 것이다. 반면에 docker save는 레이어 구조까지 포함한 형태로 압축이 된다. 즉, 기반이 되는 이미지가 같더라도 export와 save는 압축되는 파일 구조와 디렉터리가 다르다.
    • 결론은 export를 통해 생성한 tar 파일은 import로, save로 생성한 파일은 load로 이미지화 해야 한다.
반응형