강의도커 & 컨테이너
도커 & 컨테이너 트랙

개발 환경에서 운영 환경으로, 사고를 확장하는 가장 빠른 방법

이미지, 컨테이너, Compose, 디버깅까지 배포 직전의 현실 문제를 다룹니다.

23시간📦 27개 모듈💬 한국어🆓 전체 무료초급 6중급 16고급 5
무료· 회원가입 없이 바로
📅 지속 업데이트 중
🎓 수료 시험 통과 시 수료증 발급
📱 모바일·태블릿 학습 지원

🎯 완료 후 할 수 있는 것

Docker 이미지를 직접 빌드하고 배포할 수 있다
Docker Compose로 멀티 서비스 환경을 구성할 수 있다
컨테이너 내부 문제를 디버깅할 수 있다
컨테이너 로그·리소스 모니터링을 할 수 있다
프로덕션 배포 패턴을 이해하게 된다

📋 커리큘럼

27개 모듈

01

[Docker] 백엔드 개발자에게 Docker와 컨테이너 가상화가 필수인 이유초급
30

02

[Docker] 컨테이너 실행 옵션과 네임스페이스 작동 원리초급
45

03

[Docker] pull, build, tag, push 이미지 관리 라이프사이클초급
40

04

[Docker] 가상화의 혁신과 Docker 엔진의 핵심 구조초급
45

05

[Docker] 포트 바인딩 오류 방지와 컨테이너의 핵심 상태 변화초급
40

06

[Docker] 레이어 캐싱 원리와 커스텀 이미지 레지스트리 태그 전략초급
40

07

[Docker] 백엔드 애플리케이션의 컨테이너 이미지 빌드와 작성 요령중급
55

08

[Docker] 사용하지 않는 이미지 정리와 최적의 태그 아카이빙 전략중급
45

09

[Docker] 컨테이너가 삭제되어도 안전하게 데이터를 보관하는 Volume & Bind Mount중급
45

10

[Docker] Docker 네트워크 드라이브 구조와 DNS 기반 컨테이너 연결중급
50

11

[Docker] 복잡한 멀티 서비스 환경의 유기적 연동과 배포중급
55

12

[Docker] 팀 전체가 클릭 한 번으로 똑같은 환경을 구성하는 Docker 워크플로우중급
60

13

[Docker] CPU/메모리 리밋 설정으로 서버 먹통 방지하는 cgroups중급
45

14

[Docker] 컨테이너 로그 유실 방지와 효율적인 실시간 로깅 전략중급
40

15

[Docker] 컨테이너 환경에서 처음 마주하는 흔한 오류 5가지 극복기중급
60

16

[Docker] 인터넷이 안 되는 환경에서 Docker 이미지를 이전하는 Save & Load 기법중급
40

17

[Docker] 실무에 필수적인 멀티 스테이지 빌드와 최적화 기법중급
55

18

[Docker] 프로덕션 수준의 멀티 서버 아키텍처 배포 워크플로우중급
60

19

[Docker] 컨테이너 상태 진단을 위한 헬스체크와 Restart Policy 설정중급
50

20

[Docker] 백엔드 서버 이슈를 쫓는 도커 셸 접속과 디버깅 기법중급
55

21

[Docker] 루트 권한 탈피 및 최소 권한 원칙을 적용한 이미지 보안고급
60

22

[Docker] 사내 프라이빗 레지스트리 구축과 안전한 이미지 관리 방법중급
50

23

[Docker] 대규모 빌드 속도를 10배 끌어올리는 캐시 튜닝 가이드고급
55

24

[Docker] Docker Compose에서 Kubernetes로 — 컨테이너 오케스트레이션 전환 가이드고급
65

25

[Docker] cAdvisor + Prometheus + Grafana 모니터링 실무고급
60

26

[Docker] 빌드 자동화와 이미지 태그 배포 파이프라인 구축중급
60

27

[Docker] 무중단 배포와 스케일아웃을 위한 실전 컨테이너 아키텍처고급
60

🧪 실습 Labs

개념을 익혔다면 직접 손으로 해보는 시간. 서버에서 따라하고 verify.sh로 검증하세요.

Labs 전체 보기 →

Docker Compose 멀티 서비스 구성

초급

docker-compose.yml로 nginx + 앱 컨테이너를 함께 정의하고, 서비스 간 통신과 볼륨 마운트를 구성한다.

35📋 4단계💻 직접 환경

nginx 리버스 프록시 직접 구성하기

중급

Docker Compose로 nginx + 백엔드 컨테이너를 띄우고 nginx.conf를 직접 작성해 리버스 프록시를 구성한다. verify.sh로 라우팅이 실제로 동작하는지 자동 검증한다.

50📋 6단계

컨테이너가 서로 못 찾는다 — Docker 네트워크 디버깅

중급

배포 직후 React 앱이 백엔드 API를 못 찾고 있다. 두 컨테이너가 같은 서버에서 돌고 있는데 왜 통신이 안 될까? docker network를 해부하고 직접 연결 복구까지 마친다.

35📋 5단계💻 직접 환경

Docker 이미지가 1.2GB다 — 멀티스테이지 빌드로 줄이기

중급

CI 빌드가 12분 걸리고 ECR 이미지가 1.2GB인 Node.js 앱을 해부한다. .dockerignore, 멀티스테이지 빌드, 레이어 캐시 최적화 3가지를 직접 적용해 200MB 이하로 줄이는 과정을 완주한다.

40📋 4단계💻 직접 환경

Nginx + Node.js + PostgreSQL — 표준 3-Tier 아키텍처 직접 구성

고급

오픈소스 레퍼런스(docker/awesome-compose) 기반으로 Web·App·Data 3계층을 Docker Compose로 직접 설계하고 배선한다. 네트워크 격리, 헬스체크, 볼륨 영속성까지 프로덕션 패턴 그대로.

90📋 5단계💻 직접 환경

Docker 네트워크 드라이버 — bridge/host/overlay 비교

중급

bridge, host, 커스텀 bridge 네트워크를 직접 생성하고 비교해 컨테이너 격리 vs 성능 트레이드오프와 드라이버 선택 기준을 이해한다.

40📋 4단계💻 직접 환경

Docker 볼륨 — 데이터 유실 원인과 영속성 설계

초급

컨테이너를 재생성했더니 데이터가 사라졌다. 컨테이너의 쓰기 레이어는 휘발성이고, 데이터를 지키려면 볼륨이 필요하다. named volume·bind mount·anonymous volume의 차이와 함정(익명 볼륨 누적, 마운트 경로 불일치, 바인드 권한)을 가르고, 데이터가 컨테이너 재생성에도 살아남도록 설계·검증한다.

40📋 3단계💻 직접 환경

Docker healthcheck·restart 정책 — "Up인데 죽은" 컨테이너 잡기

중급

"docker ps는 Up인데 503"의 정체는 "프로세스 생존 ≠ 서비스 정상"이다. HEALTHCHECK로 실제 서비스 상태를 판별하고, restart 정책으로 죽은 컨테이너를 자동 복구하며, compose의 depends_on condition으로 의존 서비스 준비를 기다린다. 얕은 헬스체크와 무한 재시작 폭주의 함정도 다룬다.

40📋 3단계💻 직접 환경

Docker 로그 디스크 폭증 — json-file 무한 증가 잡기

중급

도커 호스트 디스크가 꽉 찼는데 큰 파일이 안 보인다. 범인은 보통 컨테이너의 json-file 로그가 무제한 쌓인 것이다. 로그가 어디 쌓이는지 찾고, 즉시 공간을 확보하고, 로그 드라이버에 회전(max-size/max-file)을 걸어 재발을 구조적으로 막는다.

40📋 3단계💻 직접 환경

Docker 자원 제한·OOMKilled — noisy neighbor 격리

중급

자원 제한 없는 컨테이너가 호스트 메모리를 독식해 이웃을 죽인다. 컨테이너별 메모리/CPU 제한(--memory, --cpus)을 걸어 격리하고, OOMKilled(exit 137)를 cgroup·docker stats로 진단하고, 제한과 앱 실제 사용량의 균형을 잡는다. 제한이 너무 낮아 정상 앱이 OOM되는 함정도 다룬다.

40📋 3단계💻 직접 환경