[Docker] 10. Docker 이미지 생성 명령
카테고리: DOCKER
태그: docker
[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 | 강제적으로 삭제 |
댓글 남기기