Docker 면접, 이 질문에 답하면 합격!
by DD
5개월 전
조회수 261
개발 환경 불일치 문제를 해결하기 위해 Docker를 도입하여 환경을 통일함
Dockerfile을 통해 애플리케이션과 환경을 '이미지'로 패키징하여 배포의 안정성을 확보함
불변 인프라 원칙을 통해 롤백 및 유지보수 효율성을 높이고, 신규 팀원의 개발 환경 구축 시간을 단축함
Docker, 컨테이너 기술의 핵심
Docker는 애플리케이션과 그 실행 환경을 컨테이너라는 격리된 공간에 묶어 관리한다. 구체적으로 Dockerfile을 사용하여 애플리케이션 코드, 라이브러리, 설정 파일 등을 하나의 이미지로 묶는다. 따라서, 개발, 테스트, 운영 환경 간의 환경 불일치 문제를 해결하고, 어디서든 동일하게 실행되는 환경을 보장한다.
이미지 불변성(Immutability)의 중요성
Docker 이미지의 불변성은 안정적인 배포를 위한 핵심 원칙이다. 따라서, 이미지를 수정하는 대신 새로운 버전을 빌드해야 한다. 코드 변경, 의존성 라이브러리 업데이트, 베이스 이미지 보안 패치 적용 시 새로운 이미지를 빌드한다. 결과적으로, 롤백 및 문제 해결 과정을 단순화하고, 시스템의 안정성을 높인다.
Docker, VM과의 차이점
Docker는 호스트 OS 커널을 공유하여 VM보다 훨씬 가볍고 빠르게 실행된다. VM은 OS 전체를 가상화하여 리소스 사용량이 많고 부팅 속도가 느리다. 반면, Docker는 애플리케이션과 필요한 라이브러리만 격리하므로, 리소스 효율성을 높이고, 배포 속도를 향상시킨다.