본문 바로가기
개발/Docker

왜 Docker를 사용해야 하는가? 주요 특징과 이점

by 난중후니 2024. 1. 26.
728x90
반응형

Docker란?

"로컬에서는 작동하는데, 서버에서는 작동하지 않아"를 해결하기 위해 나온 기술입니다.
Docker는 애플리케이션과 애플리케이션의 의존성을 일관된 환경에서 패키징하여 개발, 배포 및 실행을 가능하게 하는 플랫폼입니다.
Docker를 사용하면 애플리케이션을 "컨테이너"라는 패키지에 담아, 다양한 환경에서 동일하게 작동하게 할 수 있습니다.

간단히 말하자면 Docker는 컨테이너로 만들 수 있고 어디서든 돌아갑니다.

Docker를 사용하는 이유(특징)

  1. 환경 일관성

개발을 하다보면 팀원들과의 환경, 버전이 달라서 이슈를 겪었던 경험이 있을 겁니다.
또는 "내 로컬에서는 되는데 왜 서버에 올렸을 때는 안되지?" 라는 경험이 있었을 겁니다.
Docker는 응용 프로그램과 그 의존성을 하나의 패키지로 포장하여 동일한 환경을 구성하도록 하여 "로컬에서는 작동했어요" 문제를 해결합니다.

또한 Dockerfile을 사용하여 설치할 언어, 프레임워크, 패키지 등을 미리 코드 형태로 명시하고 어느 컴퓨터에서든 쉽게 자동으로 설치할 수 있게 하였습니다.

그리고 도커 이미지를 만들어 여러 서버에 배포하여 동일한 환경을 구축할 수 있어 수평적확장(scale out)에 도움을 줍니다.

사실 도커를 사용하는 이유는 여기까지가 거의 주 목적입니다.
아래의 내용들은 참조 정도로 생각해주시면 됩니다..

  1. 경량화

Docker는 가상화보다 훨씬 가볍습니다.
전통적인 VM은 각각의 전체 운영체제를 실행하는 반면, Docker는 호스트 OS의 리눅스 커널을 공유하면서 독립적인 실행환경을 제공합니다.
따라서 Docker 컨테이너는 빠르게 시작되며, 더 적은 리소스를 사용합니다.

Docker vs 가상머신

  1. Devops와 CI/CD

Docker는 개발과 운영 팀 사이의 격차를 줄이는 데 중요한 역할을 합니다.
Docker를 사용하면, 개발자는 코드를 컨테이너에 패키징하여 운영 팀에게 전달할 수 있으며, 운영 팀은 해당 컨테이너를 프로덕션 환경에 배포할 수 있습니다.
이로 인해 CI/CD(지속적 통합 및 지속적 배포) 프로세스가 간소화되고 효율화됩니다.

  1. 모듈화와 확장성

Docker는 마이크로서비스 아키텍처의 도입과 함께 인기를 얻었습니다.
마이크로서비스는 각기 독립적으로 배포 및 확장 할 수 있는 작은 서비스로 애플리케이션을 분할하는 방법론입니다.
Docker는 이러한 서비스 각각을 컨테이너화하여 관리, 배포, 확장하기 쉽게 만듭니다.

  1. 커뮤니티 및 에코시스템

Docker는 강력한 커뮤니티 지원과 함께 성장했습니다.
Docker Hub와 같은 플랫폼은 수많은 준비된 이미지를 제공하여 개발을 가속화합니다.

728x90
반응형

댓글