develop/docker

docker 이미지를 파일로 공유하기

아르르르를를르 2021. 3. 30. 00:09

docker hub가 있어 각자 docker repository로 접속해서 docker images를 upload, download 하면 편한데 이걸 못하게 되는 환경을 접할 수 있다. auth, 방화벽 등등

이에 docker image를 파일로 만드는 방법을 알아본다.

1. docker image를 tar파일로 만들기

~$ docker save [옵션] [파일명] [이미지명]

## tar 파일이름 지정하는 옵션 -o
~$ docker save -o ubuntu.tar ubuntu:latest

 

2. tar파일을 다시 docker image로 load하기

~$ docker load -i [tar파일명]
~$ docker images

 

 

3. 실행 중인 docker container를 tar파일로 만들기

~$ docker export [container 이름 or ID] > xxx.tar

4. export 커맨드를 통해 만들어진 tar 파일을 다시 docker image로 생성하는 명령어

~$ docker import [파일 or URL] - [image name[:tag]]

 

- 1, 2번이 한 쌍이고, 3, 4번이 한 쌍이다. save는 load로, export는 import로 tar파일을 docker image로 변환할 수 있다.

- docker export의 경우 container를 동작하는데 필요한 모든 파일이 압축된다. 즉, tar파일에 컨테이너의 root 파일시스템 전체가 들어있는 것이다. 반면에 docker save는 레이어 구조까지(history) 포함한 형태로 압축이 된다. 

즉, 기반의 이미지가 같더라도 export의 경우 history가 없고, load는 history까지 포함되어 있다는 차이가 있다.

 

참고: www.leafcats.com/240

'develop > docker' 카테고리의 다른 글

docker <-> host 파일 공유하기  (0) 2021.03.29
docker 기본 명령어  (0) 2019.12.19