Zeno ZENO

Part 5 Docker Image란 무엇인가

Docker의 핵심은 Container가 아니라 Image다. 이번 글에서는 Docker Image가 무엇인지, Repository와 Tag는 무엇인지, latest는 어떤 의미인지, Layer 구조는 왜 중요한지, 그리고 Image와 Container의 차이까지 실제 실습을 통해 이해해본다.

Part 5. Docker Image란 무엇인가?

1. Docker에서 가장 중요한 개념

많은 사람이 Docker를 배우면서 Container에 집중한다.

하지만 실제로 Docker의 핵심은 Image다.

Container는 Image가 있어야 생성할 수 있다.

Image
↓
Container 생성
↓
프로그램 실행

즉 Container보다 Image를 먼저 이해해야 한다.


2. Image란 무엇인가

Image는 실행 환경 패키지다.

프로그램 실행에 필요한 모든 것이 들어 있다.

운영체제

프로그램

라이브러리

설정 파일

실행 명령어

쉽게 말하면 실행 가능한 설계도다.

Docker는 Image를 기반으로 Container를 생성한다.


3. Image와 Container 차이

초보자가 가장 많이 헷갈리는 개념이다.

Image = 설계도

Container = 설계도를 실행한 결과

예를 들어 Ubuntu Image 하나로 여러 개의 Container를 만들 수 있다.

ubuntu image

├─ container 1

├─ container 2

└─ container 3

즉 Image는 원본이고 Container는 복제본이다.


4. docker images 명령어

docker images

현재 저장된 Image 목록을 확인할 수 있다.

예시 결과

REPOSITORY   TAG      IMAGE ID

ubuntu       latest   abc123

hello-world  latest   xyz456

5. Repository란 무엇인가

Repository는 Image 이름이다.

예를 들어

ubuntu

nginx

postgres

node

이것들이 Repository다.

Docker Hub에서는 Repository 기준으로 이미지를 관리한다.


6. Tag란 무엇인가

Tag는 Image 버전이다.

예를 들어

ubuntu:24.04

ubuntu:26.04

node:20

node:22

콜론(:) 뒤에 붙는 값이 Tag다.

같은 Repository라도 버전이 다를 수 있다.


7. latest는 무엇인가

가장 많이 오해하는 부분이다.

latest는 최신 버전이라는 의미가 아니다.

Docker 이미지 제작자가 기본 버전으로 지정한 Tag다.

예를 들어

docker pull ubuntu

실제로는 다음과 동일하다.

docker pull ubuntu:latest

즉 Tag를 생략하면 latest가 사용된다.


8. Image ID란 무엇인가

Docker는 모든 Image를 고유 ID로 관리한다.

예시

5f9c6d7a8e12

같은 이름의 Image가 여러 개 있어도 Image ID는 중복되지 않는다.


9. Layer란 무엇인가

AD

제휴 광고 · 일부 링크는 수수료를 받을 수 있습니다

승부사온라인 회원가입

Docker Image는 하나의 파일이 아니다.

여러 개의 Layer가 쌓여 만들어진다.

예를 들어 Node.js Image는 다음처럼 구성될 수 있다.

Ubuntu Layer

Node.js Layer

npm Layer

Application Layer

Layer 구조 덕분에 Docker는 빠르게 이미지를 생성할 수 있다.


10. Layer가 중요한 이유

Docker는 변경된 Layer만 다시 생성한다.

예를 들어 애플리케이션 코드만 수정했다면

Ubuntu Layer

Node.js Layer

npm Layer

는 재사용하고

Application Layer

만 새로 생성한다.

그래서 빌드 속도가 빠르다.


11. docker history 명령어

docker history ubuntu

Image가 어떤 Layer로 구성되어 있는지 확인할 수 있다.

Layer 구조를 눈으로 볼 수 있는 명령어다.


12. docker image inspect 명령어

docker image inspect ubuntu

Image의 상세 정보를 확인한다.

생성일, 환경변수, Layer 정보 등을 볼 수 있다.


13. Image 삭제하기

docker rmi hello-world

Image를 삭제한다.

Container는 삭제되지 않는다.

실행 중인 Container가 Image를 사용하고 있으면 삭제할 수 없다.


14. hello-world 이미지 분석

Part 3에서 실행했던 hello-world 역시 하나의 Image다.

Docker는 다음 순서로 동작했다.

Docker Hub 접속

hello-world Image 다운로드

Container 생성

프로그램 실행

Container 종료

즉 우리가 실행한 것은 Image가 아니라 Container다.


15. Part 5 정리

Image = 실행 환경 패키지

Container = 실행 결과

Repository = 이미지 이름

Tag = 버전

latest = 기본 태그

Image ID = 고유 식별자

Layer = 이미지 구성 단위

Docker를 제대로 사용하려면 Image 구조를 이해해야 한다.

다음 Part에서는 Dockerfile을 작성해 직접 Image를 만들어본다.

AD

제휴 광고

일부 링크는 제휴 링크이며, 구매 또는 가입 시 일정 수수료를 받을 수 있습니다.

AD

'Docker' 카테고리의 다른 글

전체보기