2. 도커 이미지, 컨테이너 이해

목표
더보기
- Docker Image와 Container의 차이를 명확히 설명할 수 있다
- 컨테이너가 "프로그램 실행 단위"라는 점을 이해한다
- 컨테이너가 "프로그램 실행 단위"라는 점을 이해한다
- [실습] docker run hello-world
- docker run hello-world 한 줄이 수행하는 모든 과정을 설명할 수 있다
- Docker Image 다운로드, 컨테이너 생성, 실행, 종료 흐름을 이해한다
- 컨테이너를 실행, 중지, 삭제할 수 있다
- 실행 중인 컨테이너의 로그를 확인할 수 있다
- 서버 컨테이너 실행에 필요한 최소 명령어 흐름을 이해한다
1. [실습]: docker run hello-world
더보기




STEP 1.

터미널에서 다음 명령어를 실행합니다.
docker run hello-world
STEP 2.

docker run 한 줄의 실제 동작 흐름 설명
- 로컬에 hello-world 이미지가 있는지 확인
- 없으면 Docker Hub에서 자동 다운로드
- 이미지 기반으로 컨테이너 생성
- 컨테이너 실행
(메시지 출력 후 자동 종료)
핵심
- docker run 사용자는 1줄만 입력했지만, Docker는 내부적으로 하나로 다운로드 + 실행까지 여러 단계를 수행
- 컨테이너는 실행이 끝나면 종료될 수 있음
STEP 3.


2. [실습] Docker Image 이해
더보기



(1) Docker Image 란?

Docker 는 "(컨테이너를 만들기 위한) 아직 실행되지 않은 상태"의 설계도입니다.
- 파일 시스템 스냅샷
- 실행할 프로그램 환경 템플릿
- 기본 실행 명령(CMD)
(2) [실습] Docker Image 목록 확인

docker images
여기서 확인해야 할 점:
- hello-world 이미지는 다운로드되어 로컬에 저장됨
- 이미지는 실행 중이 아님
- hello-world 이미지는 매우 단순하지만 구조적으로는 모든 Docker 이미지와 동일한 원리를 따릅니다.
(3) docker run 명령어 살펴보기

docker run은 사실상 축약 명령어
docker run = pull + create + start
(4) 이미지 삭제 실습
컨테이너 실습 후 진행합니다.
3. Docker Container 이해
더보기





(1) 컨테이너란 무엇인가

- 이미지로부터 생성된 실행 인스턴스
- Image: 설계도
- Container: 실제로 실행된 프로그램
- 실제로 동작하는 프로세스
(2) 컨테이너의 기본 흐름

Image 존재 → Container 생성 → Container 실행 → 프로그램 종료 → Container 종료 상태(Exited)
- 컨테이너 종료 ≠ 컨테이너 삭제가 아닙니다. (자동 삭제되지 않음)
- 명시적으로 삭제해야 함
(3) Container 확인 방법


종료된 컨테이너까지 모두 확인
docker ps -a
실행 중인 컨테이너 확인
docker ps
(4) Container 중지 및 삭제 + Image 삭제

STEP 1. 컨테이너 ID 확인
docker ps -a
STEP 2. 실행 중인 컨테이너 중지
docker stop <컨테이너ID 또는 이름>
STEP 3. 컨테이너 삭제
docker rm <컨테이너ID 또는 이름>
STEP 4. 이미지 삭제
docker rmi <이미지ID>
(5) 컨테이너 로그 확인
docker logs <컨테이너ID>
서버 프로그램에서 가장 중요한 명령어 중 하나입니다.
- 컨테이너 내부 stdout, stderr 출력 확인
- GUI 없는 서버 로그 확인에 필수
4. 학습 주요 포인트
더보기
- docker run으로 컨테이너를 실행할 수 있다
- 이미지와 컨테이너의 차이를 설명할 수 있다
- 컨테이너를 중지하고 삭제할 수 있다
- 실행 중/종료된 컨테이너를 구분할 수 있다
- 로그를 확인할 수 있다