Overview
작성
1. 구성 요소
이미지
- 스냅샷, 컨테이너를 생성하기 위한 읽기 전용 템플릿, 이미지는 불변입니다.
- 이미지에는 애플리케이션과 해당 애플리케이션이 실행되기 위해 필요한 모든 종속성이 포함되어 있습니다.
- 레이어
- 이미지는 여러 레이어로 구성됩니다.
- 이미지가 빌드되는 과정에서 단계별로 추가됩니다.
- 각 레이어는 변경사항만을 포함하며, 레이어는 캐시되어서 이미지 빌드 시간을 단축시킵니다.
- 예를 들어, 베이스 이미지 위에 새로운 애플리케이션 파일을 추가하는 방식입니다.
- 도커 레이어 시스템
- 빈번히 바뀌는거 마지막에
- 소스코드나 설정파일처럼 자주 바뀌는건 Dockerfile 마지막에 두기
- 이렇게 하면 캐시 효율이 좋아짐
- 이미지 파일 만들때마다 캐시함
- 동일한 명령어는 이전에 만든 레이어 재사용
- 빌드 시간 단축 가능
- 변경된 레이어부터 그 위에있는 레이어부터 업데이트
- 특정 레이어가 변경되면 그 위의 모든 레이어도 다시 빌드됨
- 아래 레이어들은 캐시 그대로 사용
- 명령어마다 레이어를 가짐
- RUN, COPY, ADD 같은 명령어마다 새 레이어 생성
&&로 명령어 연결하면 레이어 수를 줄일 수 있음
- 빈번히 바뀌는거 마지막에
컨테이너
- 스냅샷을 구동시키는 환경
- 컨테이너는 이미지를 실행한 상태입니다.
- 컨테이너는 독립된 실행 환경을 제공하며, 각각의 컨테이너는 이미지로부터 생성됩니다.
- 읽기-쓰기 레이어가 추가되어 데이터를 저장하거나 변경할 수 있습니다.
- 컨테이너는 격리되어 있으며, 필요한 리소스만 사용합니다.
이미지 vs 컨테이너
- 이미지: 애플리케이션이 실행되기 위해 필요한 모든 설정과 파일을 담고 있습니다.
- 컨테이너: 이미지를 기반으로 생성된 실행 환경으로, 이미지를 실제로 작동시키는 인스턴스라고 할 수 있습니다.
참고
커리큘럼
- 웹 개발에서 배포 및 Docker의 위치
- 대표적인 배포 전략
- 롤링 배포, 블루 그린 배포, 카나리 배포
- 모던 웹개발에서 Docker가 왜 필요해졌을까?
- 배포할 때 신경써야하는 요소
- 대표적인 배포 전략
- 여러 Docker container 를 사용할 때 필요한 Docker compose, CI/CD 를 통한 배포 자동화
- 모던 웹 환경에서 CI/CD 가 왜 중요한지와 구성요소에 대해 알아봅니다.
- 여러 Docker container 를 사용하기 위해 자주 쓰이는 Docker Compose에 대해 알아봅니다.
- 초간단 Docker 와 Github Action 함께 사용해 봅니다.
- Docker를 관리하는 Kubernetes
- Kubernetes 구성요소
- Kubernetes 를 서버의 한계 관점
- 쿠버네티스자격증 (CKAD)
- 모던 웹 환경에서 사용되는 클라우드를 이해하고 구성하는 요소인 network, security, 기본 시스템 아키텍쳐 이해하기
- 로드밸런싱, AWS RDS, VPC
- 클라우드 환경에서 서버 운영 및 배포의 주요 단계
- 클라우드를 사용할 때 꼭 알아야 하는
- 보안 기초 개념
- 네트워크 기초 개념
- 웹 백엔드 개발 시 적용할 클라우드 아텍처
- scaling을 고려한 아키텍처 설계