도커 가이드 3편: 도커 이미지
이번 시간에는 도커 이미지와 이미지를 공유하는 방법에 대해서 알아보겠습니다.

(이미지 출처: https://docs.docker.com/build/guide/layers/)
도커 이미지란?
- 이미지는 읽기 전용이다.
- 동일한 이미지를 기반으로 격리된 컨테이너를 생성할 수 있다.
- Dockerfile 에 작성한 각각의 명령은 Docker Image 의 레이어를 의미한다.
- 이미지 빌드시 이미지 파일시스템에 변화를 주는 명령어는 새로운 이미지 레이어를 생성한다.
- 생성된 이미지 레이어는 캐시된다.
- 이미지 빌드시 이미지 파일시스템에 변화를 주지 않는 명령어는 새로운 이미지 레이어를 생성하지 않고 캐시된 레이어를 재사용한다.
- 이미지 레이어가 변경된 경우 그 이후 레이어의 캐시는 무효화되고 모두 다시 빌드된다.
- 이미지 빌드시 이미지 파일시스템에 변화를 주는 명령어는 새로운 이미지 레이어를 생성한다.
이미지 관리
1편에서 컨테이너를 관리하는 방법을 확인했습니다.
이번 편에서는 이미지를 관리하는 방법과 공유하는 방법을 확인해보겠습니다.
이미지 태그
- name:tag 형식으로 이미지를 고유하게 식별할 수 있다.
- name : 이미지 그룹 이름
- 소문자만 가능하다.
- tag : 이미지 그룹내에서 구분하기 위한 값.
- tag 값은 옵션으로 추가해줄 수 있다.
- 버전 등으로 설정: 예) node:14
docker build -t nodeserver .
docker build -t api:1.0 .
docker build -t api:1.0 .
기존 이미지 이름 및 태그 변경
- 기존 이미지를 복사한 새로운 이미지가 생성된다.
docker tag <old_name:tag> <new_name:tag>
이미지 목록 조회
docker images
이미지 검사 분석
- 이미지를 검사해서 이미지 ID, 생성된 날짜 등 다양한 정보를 조회할 수 있다.
docker image inspect <imageId>
이미지 제거
- 컨테이너에서 사용중인 상태가 아닌 이미지만 삭제할 수 있다.
- 이미지를 사용하는 컨테이너를 모두 제거한 경우에만 이미지를 삭제할 수 있다.
- 다수의 imageId 를 공백으로 구분하여 삭제할 수도 있다.
docker rmi <imageId>
사용중이지 않은 이미지를 모두 삭제한다.(태그가 없는 이미지만 삭제)
docker image prune
사용중이지 않은 태그된 이미지를 모두 삭제한다.
docker image prune -a
이미지 공유하기
이미지를 공유하는 방법은 크게 2가지가 있다.
- Dockerfile 과 소스코드를 직접 공유한다. 도커파일을 통해 자체 이미지를 직접 생성해서 컨테이너를 실행한다.
- 일반적으로는 빌드된 도커이미지 자체를 공유한다.
- Docker Hub 나 Private Registry 저장소를 활용한다.
- docker push : 업로드
- docker pull : 다운로드
참고
'Docker' 카테고리의 다른 글
| [docker] container networking (1) | 2024.03.24 |
|---|---|
| docker volume, bind mount, tmpfs mount (0) | 2024.03.10 |
| Dockerfile 기반 이미지 생성 (0) | 2024.02.25 |
| 도커 컨테이너 소개와 기본 사용법 (2) | 2024.02.04 |
댓글