← 목차
Week 1 · Phase 1 기초 다지기

컨테이너 기초와
Git / GitHub

"왜 K8s인가?" — 컨테이너의 본질(namespace·cgroup)과 이미지, 그리고 협업의 기반 Git 워크플로우
학습 자료 · container-basics · git-basics · (심화) container_pid · cgroup_namespace
산출물 · 첫 Dockerfile + GitHub PR

학습 목표

이번 주에 반드시 체득할 4가지
  • 컨테이너의 본질 — namespace(격리) + cgroup(자원 제한)의 결합으로 이해한다
  • 이미지 빌드·실행 — Docker로 이미지를 만들고 컨테이너로 실행할 수 있다
  • Git 3-Stage 모델 — Working → Staging → Repository의 흐름을 이해한다
  • PR 워크플로우 — GitHub Pull Request로 협업 흐름을 경험한다

컨테이너의 본질 — 격리 + 제한

컨테이너는 마법이 아니라 리눅스 커널 기능의 조합이다
Namespace

무엇을 볼 수 있나 (격리)

  • PID — 프로세스 트리 격리 (컨테이너 내 PID 1)
  • NET — 독립 네트워크 스택·인터페이스
  • MNT · UTS · IPC · USER — 파일시스템·호스트명·통신·UID
  • → "나만의 세상"처럼 보이게 함
cgroup

얼마나 쓸 수 있나 (제한)

  • CPU — 코어·쿼터 제한
  • Memory — 상한·OOM 제어
  • I/O · PIDs — 디스크 대역·프로세스 수 제한
  • → 자원을 나눠 쓰며 폭주 방지

가상머신 vs 컨테이너

왜 컨테이너가 가볍고 빠른가
VIRTUAL MACHINE Hardware Host OS + Hypervisor Guest OSApp A Guest OSApp B 각 VM이 무거운 Guest OS 포함 → 부팅 느림·용량 큼 CONTAINER Hardware Host OS + Container Runtime App A App B App C 커널 공유 · OS 없음 → 즉시 시작·경량·고밀도

Docker 이미지 & 레이어

Dockerfile로 불변 이미지를 만들고 레이어로 재사용한다
# Dockerfile — 각 명령이 하나의 레이어 FROM nginx:alpine # 베이스 이미지 레이어 COPY index.html /usr/share/nginx/html/ EXPOSE 80
  • 레이어 캐시 — 바뀐 레이어만 다시 빌드/전송 → 빠른 빌드·배포
  • 불변성(Immutable) — 이미지는 태그로 버전 고정, 어디서나 동일 실행
  • 핵심 명령 — FROM · COPY · RUN · CMD · EXPOSE

Git 3-Stage 모델

변경이 저장소에 반영되는 3단계
Working Dir작업 중인 파일 (수정) Staging커밋 예정 스냅샷 Repository이력에 영구 기록 git add → git commit → git push → 원격(GitHub) 저장소로 · 분산 버전관리(모두가 전체 이력 보유)

라이브 실습 — 컨테이너 & 이미지

직접 실행하며 감을 잡는다
# 실습 1: 첫 컨테이너 실행 $ docker run -d -p 8080:80 --name web nginx $ docker exec -it web bash # 안으로 진입 $ docker logs web # 로그 확인 # 실습 2: 첫 이미지 빌드 & 실행 $ docker build -t myapp:v1 . $ docker run -d -p 8080:80 myapp:v1

Git 실습 & 과제

워크플로우를 손에 익히고 과제로 마무리
Live

Git 워크플로우

$ git init $ git add . && git commit -m "feat: init" $ git remote add origin <repo> $ git push -u origin main
과제

제출 산출물

  • Flask "Hello World" + Dockerfile → DockerHub push
  • GitHub 저장소 → 브랜치 → PR 생성·리뷰·머지
  • .gitignore · README · Dockerfile를 PR 1개로 통합

체크리스트 & 다음 주

이걸 할 수 있으면 Week 1 완료
  • docker run / build / push를 활용할 수 있다
  • Dockerfile의 FROM·COPY·RUN·CMD·EXPOSE를 설명할 수 있다
  • git add → commit → push의 의미를 안다
  • PR을 생성하고 머지할 수 있다
→
다음 주(Week 2) — K8s 아키텍처와 Control Plane, 그리고 1 Master + 2 Worker 클러스터를 직접 구축합니다.