
- 컨테이너를 만들지 않아도 되지만, 사실상 컨테이너를 만드는게 표준이다.
컨테이너가 왜 필요한가?
1. Different Development & Production Environment
- 독립적이고 표준화된 개발환경을 제공한다.
- 로컬 개발 환경에서 잘 작동하던 애플리케이션이 각종 패키지들의 종속성에 영향을 받으며 작동하지 않을 수도 있다.
- 도커파일에 특정 버전의 패키지를 기입함으로써 코드가 항상 정확한 버전으로 실행되도록 한다.
2. Different Development Environments Within a Team / Company
- 관리 및 설치에 더 복잡한 종속성이 있는 프로젝트의 경우 도커 파일로 관리를 할 수 있다.
- 배포 환경이 아니더라도 항상 같은 코드로 작동하며 개발하기 위해서 필요하다.(재현성)
3. Clashing Tools / Versions Between Different Projects
- 혼자 개발하는 환경에서도 사용 패키지간의 버전 충돌을 방지할 수 있다.
- 각 프로젝트별 컨테이너의 재시작 만으로 프로젝트별 개발 환경에서 버전을 쉽게 바꿀 수 있다.
여러 버츄얼머신에서 작동하는 오버헤드를 해결해야한다.
메모리, cpu, 하드 드라이브와 같은 공간을 낭비하게 된다. → 버츄얼 머신이 많아지면 문제가 발생하게 된다.