Note

[TIL] Docker 개념

by 달쿨

TIL

도커 개념

도커(Docker)는 애플리케이션과 그 의존성을 하나의 컨테이너에 묶어 실행할 수 있도록 해주는 소프트웨어 플랫폼이다. 컨테이너란 독립적인 환경에서 애플리케이션이 동작하도록 만들어진 가볍고 이식 가능한 단위로 어디서든 동일하게 실행된다. 도커를 사용하면 이러한 컨테이너를 효율적이고 쉽게 생성하고 관리할 수 있다.

 

도커와 가상머신(VM)의 차이

  • 구조
    VM은 하드웨어 수준에서 완전히 독립된 환경을 제공한다. VM을 실행하려면 각각의 운영체제(게스트 OS)가 설치되어야 하고, 이로 인해 무겁고 느리다. 하지만 하나의 가상머신에서 문제가 발생해도 다른 가상 머신에 영향을 주지 않는다. 반면 도커는 동일한 OS의 커널을 공유하며, 애플리케이션과 필요한 라이브러리만 패키징한다. 이로 인해 VM보다 훨씬 가볍고 빠르게 실행되지만 보안 격리 수준은 더 낮아 하나의 컨테이너에서 보안 문제가 발생하면 같은 커널을 공유하는 다른 컨테이너에 영향을 줄 가능성이 있다.
  • 자원 효율성
    VM은 게스트 OS를 포함하기 때문에 메모리와 디스크 공간을 많이 사용한다. 한 서버에서 여러 VM을 실행하면 컴퓨터 자원을 많이 소모하게 되어 컴퓨터 성능을 저하시킬 수 있다. 도커는 경량화된 컨테이너를 사용하므로 같은 하드웨어에서 더 많은 애플리케이션을 실행할 수 있다.
  • 이식성과 유연성
    도커 이미지는 OS와 하드웨어에 의존하지 않고 실행될 수 있어 어디서든 동일하게 실행되는 높은 이식성을 제공하지만 VM은 호환성 문제가 발생할 가능성이 있다.

 

언제 사용하면 좋을까?

  • 빠르고 반복적인 개발과 배포가 필요할 때
  • 마이크로서비스 아키텍처를 구현할 때
  • 환경 설정 문제를 줄이고 팀 간 협업을 원활하게 하고 싶을 때
  • 클라우드 환경에서 자원을 효율적으로 활용하고자 할 때

 

 

참고 자료

https://www.docker.com/

 

Docker: Accelerated Container Application Development

Docker is a platform designed to help developers build, share, and run container applications. We handle the tedious setup, so you can focus on the code.

www.docker.com

 

블로그의 정보

note

달쿨

활동하기