한 권으로 배우는 도커 & 쿠버네티스 정리 (2)

그레이쁘·2026년 3월 21일

Today I Learned

목록 보기
9/10

한 권으로 배우는 도커 & 쿠버네티스

도커 기초

도커의 전체 구조

도커 클라이언트

도커에 명령을 내릴 수 있는 CLI(Command line Interface) 도구
컨테이너, 이미지, 볼륨 등을 관리할 수 있다.
클라이언트에서 명령어를 입력하면 호스트로 요청이 간다.

도커 호스트

도커를 설치한 서버 혹은 가상머신
물리 서버도 가상 서버도 가능
관련 리소스를 관리하는 백그라운드 프로세스인 데몬이 클라이언트 요청을 받는다.

도커 레지스트리

도커 이미지를 저장하거나 배포하는 시스템
공개 레지스트리 (ex. 도커 허브 - 누구나 이미지를 다운로드/업로드 할 수 있음)
개인 레지스트리
호스트에 존재하지 않는 이미지는 레지스트리에서 다운로드한다.

도커 이미지

소프트웨어를 배포하기 위해 필요한 모든 요소(코드, 라이브러리, 설정 등)을
컨테이너 형태로 실행할 수 있는 포맷으로 컴파일 및 빌드한 패키지

  • 독립적, 경량화
  • 특정 시점의 도커 컨테이너 상태를 담은 SnapShot
  • 도커 이미지를 통해 여러 개의 컨테이너 생성 가능

💡Digest: 해시 함수를 거쳐나온 후의 데이터

이미지 구조

  • Image Index: 다수의 이미지 매니페스트로 구성
  • Image Manifest: 다양한 운영체제·아키텍처에서 활용하기 위한 설정값, 레이어들로 구성
  • Layer

도커 컨테이너

도커 이미지를 실행할 수 있는 인스턴스

  • 도커 이미지로부터 생성
  • 실행, 중지, 재실행, 삭제 가능
  • 자체적인 파일시스템
  • 독립적 실행
  • 도커 엔진이 설치된 호스트 운영체제를 이용 (공유)
  • 프로그램을 실행하기 위한 최소한의 바이너리, 라이브러리 등으로 구성됨

명령어

# 이미지 다운로드
docker image pull [이미지 이름:태그 이름]
# - 태그 생략 시 latest
# - [도커 이미지 빌드 시 생성된 레이어의 ID = 이미지 인덱스]: Pull complete
# - 이미지 레이어 개수만큼 나타남
# - 태그 이름 자리에 Digest 해시값 입력도 가능

# 이미지 목록 확인
docker image ls
# ls 결과로 나오는 ID는 이미지 다운로드 후 로컬에서 할당받은 ID
# 다운로드 시 나오는 Digest는 도커 레지스트리에 존재하는 이미지 Digest

# 도커 컨테이너 실행
docker container run [이미지명]
docker container start [종료된 컨테이너 ID]

# 도커 컨테이너 접속
docker container run -it [이미지명] # 실행 중인 컨테이너 내부 접속
# i: interactive (표준 입력 열어놓음)
# t: tty (가상 터미널)
docker container attach [실행 중인 컨테이너 ID]

# 도커 컨테이너 종료
docker container stop [컨테이너 ID] # 약 10초 후 종료 (안정적)
docker container kill [컨테이너 ID] # 즉시 종료
exit # 접속 중인 컨테이너 종료

# 도커 컨테이너 목록 확인
docker container ls # 실행 중인 목록
docker container ls -a # 실행 중, 정지 상태 목록
# Exited(0): 정상 종료된 상태

# 실행 중인 컨테이너를 이미지로 저장 (호스트 터미널에서 실행)
docker commit [컨테이너명] [새이미지이름:태그]

스터디 실습

■ p.74에 있는 화면 띄워보기
image1.png

컨테이너 진입 후 ls pwd 실행해보기
image2.png

컨테이너에서 https://github.com/HH-plus-7th/docker-kubernetes pull 받아보기
image3.png

nginx 이미지를 pull 받고 레이어 구조 확인해보기
image4.png

my-nginx 컨테이너를 백그라운드로 실행 후 브라우저에서 접속 확인
image5.png
image6.png

stop → start → restart 순서로 컨테이너 상태 변화 관찰해보기
image7.png

컨테이너와 이미지 정리하기
image8.png

항해 프론트엔드 과제 clone 하기
컨테이너 내부에서 node, npm 설치하기
개발서버 실행 후 호스트 브라우저에서 http://localhost:5173 접속
image9.png

■ 스크린샷 올려서 자랑하기~!
image10.png

Chapter03 심화 과제에서 띄웠던 환경(node, npm 설치된 상태)을 이미지로 저장하기
새 이미지로 컨테이너를 실행해서 node, npm이 그대로 있는지 확인하기
image11.png

새 이미지에서 바로 개발 서버까지 실행해보기
image12.png

ubuntu:22.04 와 새 이미지의 레이어 수 비교해보기
image13.png

profile
그냥 걷는 사람🚶‍♀️

0개의 댓글