Nginx의 필요성 Q. 개발환경 서버와 운영환경 서버가 달라야 하는 이유 개발에서 사용하는 서버(Dockerfile.dev) 소스 변경시 자동으로 전체 앱을 다시 빌드해서 변경 소스를 반영 → 개발환경에 특화 운영환경 서버(Dockerfile) 소스 변경시 변경 소스 반영X →개발에 필요한 기능들이 필요하지 않아 더 깔끔함 Nginx의 장점 Q. Docker에서 nginx를 사용하는 이유는? nginx(리버스 프록시 서버)는 백엔드 서버 앞에 위치해서 클라이언트 요청을 백엔드 서버로 전달 이로인해 아래와 같은 장점이 있음 백엔드 서버의 주소 숨길 수 있음(리버스 프록시) 들어오는 네트워크 트래픽을 여러 서버에 분산시켜 부하를 균등하게 분배(로드 밸런싱) 자주 요청되는 데이터(예: 이미지, CSS, Ja..
Docker Compose 단일 서버에서 여러개의 컨테이너를 하나의 서비스로 정의해 컨테이너의 묶음으로 관리할 수 있는 작업 환경을 제공하는 관리 도구 Docker Compose 사용 이유 여러 개의 컨테이너가 하나의 어플리케이션으로 동작시, 도커 컴포즈를 사용하지 않는다면, 이를 테스트하기 위해 각 컨테이너를 하나씩 생성해야 하기때문 ex. web application test = web server container,db container 각각 생성 Docker Compose 특징 run 명령어의 옵션을 그대로 사용 가능 각 컨테이너의 의존성,네트워크,볼륨등을 함께 정의 가능 Docker Compose 작성 방법 Compose에서는 YAML파일을 사용하여 application 서비스를 구성(명세)함 ..
Docker Storage 필요성 1. Docker Layer = Container Layer + Image Layer Image Layer = Read Only : Docker Image는 읽기전용이며 어떠한 경우에도 변경되지 않음(변경사항 적용X) Container Layer = Writable Writable Layer : 컨테이너가 생성될때, Dockers는 읽기 전용 이미지 위에 “Writable Layer”를 추가 → 이 레이어에서 컨테이너 내의 변경사항(파일 추가,수정,삭제 등)이 처리됨 Writable Layer의 휘발성 : Container 삭제시 Writable Layer에 저장된 모든 데이터도 함께 삭제됨 2. Container의 Data 저장 문제점(휘발성) Container의 Wr..