Docker

DockerImage와 Container의 차이

정도비_ 2025. 5. 22. 09:31
반응형

Docker를 사용할 때 가장 기본이 되는 개념은 바로 이미지컨테이너입니다. 두 개념은 밀접하게 연결되어 있지만, 역할과 특징이 분명히 다릅니다.


1. 이미지(Image)

  • 정적인 실행 템플릿
  • 컨테이너를 만들기 위한 설계도(스냅샷) 역할
  • 파일 시스템, 라이브러리, 설정 파일, 의존성 등 포함
  • 상태 변화 없음 (읽기 전용)

예시: ubuntu:22.04, python:3.11, nginx:latest


2. 컨테이너(Container)

  • 이미지로부터 만들어진 실행 중인 인스턴스
  • 실제로 동작하는 애플리케이션 환경
  • 파일 쓰기, 로그, 데이터 등 상태가 존재함
  • 종료하거나 삭제 가능

예시: 실행 중인 nginx 웹 서버, 실행 중인 Django 앱 등


3. 비교 표

구분 이미지 (Image) 컨테이너 (Container)
역할 실행을 위한 정적 템플릿 실행 가능한 가상 환경
상태 불변 (정적, 읽기 전용) 가변 (동적, 상태 유지 가능)
생성 방법 docker build docker run
실행 가능성 직접 실행 불가 실행 가능 (docker start, exec 등)
저장 위치 호스트의 Docker 이미지 저장소 호스트의 컨테이너 영역 (격리된 파일시스템)

 


4. 관계 요약

Dockerfile → Docker Image → Docker Container
  1. Dockerfile로부터 이미지를 만들고 (docker build)
  2. 이미지를 기반으로 컨테이너를 실행 (docker run)
  3. 컨테이너는 이미지의 실행 인스턴스이며, 상태를 가질 수 있음

5. 참고 명령어

# 이미지 목록 보기
docker images

# 컨테이너 목록 보기
docker ps -a

# 이미지로부터 컨테이너 실행
docker run -it ubuntu:22.04 bash

# 컨테이너 중지/삭제
docker stop <container_id>
docker rm <container_id>

반응형