목표

더보기
  1. Docker Image와 Container의 차이를 명확히 설명할 수 있다
    • 컨테이너가 "프로그램 실행 단위"라는 점을 이해한다

  2. [실습] 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 한 줄의 실제 동작 흐름 설명

  1. 로컬에 hello-world 이미지가 있는지 확인
  2. 없으면 Docker Hub에서 자동 다운로드
  3. 이미지 기반으로 컨테이너 생성
  4. 컨테이너 실행
    (메시지 출력 후 자동 종료)

핵심

  • 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으로 컨테이너를 실행할 수 있다
  • 이미지와 컨테이너의 차이를 설명할 수 있다
  • 컨테이너를 중지하고 삭제할 수 있다
  • 실행 중/종료된 컨테이너를 구분할 수 있다
  • 로그를 확인할 수 있다