[Docker] 10. Docker 이미지 생성 명령

Date:     Updated:

카테고리:

태그:

[Docker] 10. Docker 이미지 생성 명령



📜 컨테이너로부터 이미지 작성

docker container commit [옵션] <컨테이너명 또는 컨테이너ID> [이미지명[:태그명]]

docker commit [옵션] <컨테이너명 또는 컨테이너ID> [이미지명[:태그명]]
옵션 설명
-a, –author 작성자를 지정
-m, –message 메시지를 지정
-c, –change Commit 시 Dockerfile 명령을 지정함
-p, –pause 컨테이너를 일시 정지하고 Commit함


📜 컨테이너를 tar 파일로 출력

docker container export <컨테이너명 또는 컨테이너ID>

# 예시
docker container export webserver > latest.tar


📜 tar 파일로부터 이미지 작성

docker image import <파일 또는 URL> | - [이미지명[:태그명]]

# 예시
$ cat latest.tar | docker image import - choi/webfront:1.1


📜 이미지 저장

해당 명령을 사용하면 Docker 이미지를 tar 파일로 저장할 수 있다.

docker image save [옵션] <저장 파일명> [이미지명]

# 예시 - 지정할 파일명은 -o 옵션
# tensorflow라는 이름의 이미지를 export.tar에 저장하려면 해당 명령을 실행
docker image save -o export.tar tensorflow


📜 이미지 읽어 들이기

해당 명령을 사용하면 tar 로부터 이미지를 읽어 들일 수 있다.

docker image load [옵션]

# 예시 - 읽어 들일 파일명은 -i 옵션
# export.tar라는 이름의 이미지를 읽음
docker image loda -i export.tar 


🔔 export/import와 save/load 차이로

  • 컨테이너를 export하면 컨테이너를 작동시키는 데 필요한 파일을 모두 압축 아카이브로 모을 수 있어서 tar 파일을 풀면 컨테이너의 루트 파일 시스템 그대로 추출할 수 있다.

  • 반면 이미지를 save 하면 이미지의 레이어 구조도 포함된 형태로 압축 아카이브로 모을 수 있다.

  • 기본 베이스가 되는 이미지가 똑같아도 export 명령과 save 명령은 내부적인 디렉토리와 구조가 다르다.

  • 그래서 압축 아카이브에서는 export 명령으로 작성한 것을 읽어 들일 때는 import 명령을, save 명령으로 생성한 것을 읽어 들일 때는 load 명령을 사용한다.


📜 불필요한 이미지/컨테이너를 일괄 삭제

docker system prune [옵션]
옵션 설명
-a, –all 사용하지 않는 리소스를 모두 삭제함
-f, –force 강제적으로 삭제


DOCKER 카테고리 내 다른 글 보러가기

댓글 남기기