상세 컨텐츠

본문 제목

[Docker] Docker란 무엇인가?

Devops 도전기/Docker

by 끝까지해봐야지 2024. 5. 17. 21:45

본문

Docker란?

오픈 소스 플랫폼으로 컨테이너를 사용하여 애플리케이션의 배포, 관리 및 확장을 자동화합니다.

  • 애플리케이션을 인프라에서 분리하여 빠르게 소프트웨어를 제공할 수 있습니다.
  • 인프라를 관리하는 것과 동일한 방식으로 애플리케이션을 관리할 수 있습니다.
  • Docker를 활용하여 코드를 빠르게 배포, 테스트 및 실행하므로 프로덕션에서 실행까지의 시간을 크게 줄일 수 있습니다.

또한, 의존성을 포함한 애플리케이션을 표준화된 단위인 컨테이너로 패키징합니다.

  • Docker는 컨테이너라는 느슨하게 격리된 환경에서 애플리케이션을 패키징하고 실행할 수 있는 기능을 제공합니다.
  • 격리 및 보안을 통해 지정된 호스트에서 여러 컨테이너를 동시에 실행할 수 있습니다.
  • 가볍고 애플리케이션을 실행하는 데 필요한 모든 것을 포함하므로 호스트에 현재 설치된 항목에 의존하지 않아도 됩니다.
  • 공유하는 모든 사람이 동일한 방식으로 작동하는 컨테이너를 사용할 수 있습니다.

컨테이너” 라는 단어가 설명에 자주 언급됩니다. 이제 컨테이너가 무엇이고, 가상머신과 어떤 차이점이 있는지 알아봅시다.

컨테이너

컨테이너는 리눅스의 기능을 이용해, 마치 독립적인 가상머신인 것 같은 환경을 구성합니다. 애플리케이션 구동을 위한 라이브러리만 포함하여 이미지를 생성합니다.

가상머신

반면 가상머신은 하이퍼바이저를 통해 가상화를 진행합니다. 이러한 가상머신은 완벽하게 독립적인 공간을 생성하지만, 이미지 용량이 크기 때문에 가상머신 배포에 부담이 될 수 있습니다.

 

 

컨테이너는 위의 그림과 같이 커널을 공유하여 리소스에 대한 오버헤드를 줄일 수 있습니다. 리소스 중 메모리를 자세히 살펴보며, 컨테이너의 장점을 확인해 봅시다.

메모리

가상 머신은 완벽한 독립적인 환경입니다. 할당된 메모리에서 여유분이 남아도 다른 머신이 사용할 수 없습니다. 반면 Docker는 필요한 만큼의 메모리만 사용하며 전체 시스템과 공유하여 다른 애플리케이션이 사용할 수 있습니다.

 

 

관련글 더보기