목차
▣ 01: 도커란?
1.1 가상 머신과 도커 컨테이너
1.2 도커를 시작해야 하는 이유
___1.2.1 애플리케이이션의 개발과 배포가 편해집니다.
___1.2.2 여러 애플리케이션의 독립성과 확장성이 높아집니다.
1.3 도커 엔진 설치
___1.3.1 도커 엔진의 종류 및 버전
___1.3.2 리눅스 도커 엔진 설치
___1.3.3 윈도우, 맥 OS에 도커 설치
___1.3.4 Docker Toolbox와 Docker for Windows/Mac의 차이점
___1.3.5 리눅스 환경에 도커 마련하기
▣ 02: 도커 엔진
2.1 도커 이미지와 컨테이너
___2.1.1 도커 이미지
___2.1.2 도커 컨테이너
2.2 도커 컨테이너 다루기
___2.2.1 컨테이너 생성
___2.2.2 컨테이너 목록 확인
___2.2.3 컨테이너 삭제
___2.2.4 컨테이너를 외부에 노출
___2.2.5 컨테이너 애플리케이션 구축
___2.2.6 도커 볼륨
___2.2.7 도커 네트워크
___2.2.8 컨테이너 로깅
___2.2.9 컨테이너 자원 할당 제한
2.3 도커 이미지
___2.3.1 도커 이미지 생성
___2.3.2 이미지 구조 이해
___2.3.3 이미지 추출
___2.3.4 이미지 배포
2.4 Dockerfile
___2.4.1 이미지를 생성하는 방법
___2.4.2 Dockerfile 작성
___2.4.3 Dockerfile 빌드
___2.4.4 기타 Dockerfile 명령어
___2.4.5 Dockerfile로 빌드할 때 주의할 점
2.5 도커 데몬
___2.5.1 도커의 구조
___2.5.2 도커 데몬 실행
___2.5.3 도커 데몬 설정
___2.5.4 도커 데몬 모니터링
___2.5.5 Remote API 라이브러리를 이용한 도커 사용
▣ 03: 도커 스웜
3.1 도커 스웜을 사용하는 이유
3.2 스웜 클래식과 도커 스웜 모드
3.3 스웜 모드
___3.3.1 도커 스웜 모드의 구조
___3.3.2 도커 스웜 모드 클러스터 구축
___3.3.3 스웜 모드 서비스
___3.3.4 도커 스웜 모드 노드 다루기
▣ 04: 도커 컴포즈
4.1 도커 컴포즈를 사용하는 이유
4.2 도커 컴포즈 설치
4.3 도커 컴포즈 사용
___4.3.1 도커 컴포즈 기본 사용법
___4.3.2 도커 컴포즈 활용
▣ 05: 쿠버네티스 설치
5.1 쿠버네티스 설치 환경의 종류
5.2 쿠버네티스 버전 선택
5.3 개발 용도의 쿠버네티스 설치
___5.3.1 Docker for Mac / Windows에서 쿠버네티스 사용
___5.3.2 Minikube로 쿠버네티스 설치
5.4 여러 서버로 구성된 쿠버네티스 클러스터 설치
___5.4.1 kubeadm으로 쿠버네티스 설치
___5.4.2 kops로 AWS에서 쿠버네티스 설치
___5.4.3 구글 클라우드 플랫폼의 GKE로 쿠버네티스 사용하기
▣ 06: 쿠버네티스 시작하기
6.1 쿠버네티스를 시작하기 전에
6.2 포드(Pod) : 컨테이너를 다루는 기본 단위
___6.2.1 포드 사용하기
___6.2.2 포드 vs. 도커 컨테이너
___6.2.3 완전한 애플리케이션으로서의 포드
6.3 레플리카셋(Replica Set) : 일정 개수의 포드를 유지하는 컨트롤러
___6.3.1 레플리카셋을 사용하는 이유
___6.3.2 레플리카셋 사용하기
___6.3.3 레플리카셋의 동작 원리
___6.3.4 레플리케이션 컨트롤러 vs. 레플리카셋
6.4 디플로이먼트(Deployment) : 레플리카셋, 포드의 배포를 관리
___6.4.1 디플로이먼트 사용하기
___6.4.2 디플로이먼트를 사용하는 이유
6.5 서비스(Service) : 포드를 연결하고 외부에 노출
___6.5.1 서비스(Service)의 종류
___6.5.2 ClusterIP 타입의 서비스 - 쿠버네티스 내부에서만 포드에 접근하기
___6.5.3 NodePort 타입의 서비스 - 서비스를 이용해 포드를 외부에 노출하기
___6.5.4 클라우드 플랫폼의 로드 밸런서와 연동하기 - LoadBalancer 타입의 서비스
___6.5.5 트래픽의 분배를 결정하는 서비스 속성 : externalTrafficPolicy
___6.5.6 요청을 외부로 리다이렉트하는 서비스 : ExternalName
▣ 07: 쿠버네티스 리소스의 관리와 설정
7.1 네임스페이스(Namespace) : 리소스를 논리적으로 구분하는 장벽
7.2 컨피그맵(Configmap), 시크릿(Secret) : 설정값을 포드에 전달
___7.2.1 컨피그맵(Configmap)
___7.2.2 시크릿(Secret)
▣ 08: 인그레스(Ingress)
8.1 인그레스를 사용하는 이유
8.2 인그레스의 구조
8.3 인그레스의 세부 기능 : annotation을 이용한 설정
8.4 Nginx 인그레스 컨트롤러에 SSL/TLS 보안 연결 적용
8.5 여러 개의 인그레스 컨트롤러 사용하기
▣ 09: 퍼시스턴트 볼륨(PV)과 퍼시스턴트 볼륨 클레임(PVC)
9.1 로컬 볼륨 : hostPath, emptyDir
___9.1.1 워커 노드의 로컬 디렉터리를 볼륨으로 사용 : hostPath
___9.1.2 포드 내의 컨테이너 간 임시 데이터 공유 : emptyDir
9.2 네트워크 볼륨
9.3 PV, PVC를 이용한 볼륨 관리
___9.3.1 퍼시스턴트 볼륨과 퍼시스턴트 볼륨 클레임을 사용하는 이유
___9.3.2 퍼시스