Docker 란?

Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼

  • Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함
  • Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장

Docker 작동 방식

Docker는 컨테이너를 위한 운영 체제

가상 머신이 서버 하드웨어를 가상화하는 방식과 비슷하게(직접 관리해야 하는 필요성 제거) 컨테이너는 서버 운영 체제를 가상화

Untitled

Container VS VM ?

Container의 장점

  • VM 보다 볼륨이 작다.
    • 위의 그림에서 보이듯이, Container는 Host의 커널을 공유한다. 따라서, 가상화된 하드웨어위에 OS가 올라가는 VM보다 볼륨이 작다.
  • 빠르다.
    • I/O가 발생하는 통로가 VM이 더 많을 수 밖에 없다. VM이 처리한 I/O를 Host OS의 커널에서 다시 받아 자신의 드라이버에 맞게 처리해줘야 한다. Container의 경우 커널을 공유하므로 들어온 I/O가 보다 쉽게 처리된다.
  • 라이프사이클
    • 개발 환경 내에서 image 만들어 배포하고 pull 받아서 다시 올리면 끝. 매우 편리하게 서비스를 관리할 수 있다.
    • 여러대의 host에서 실행중인 container를 관리할 수 있는 오케스트레이션 제공

→ MicroService로 발전할 수 있는 토대를 마련하고 적용해 나갈 수 있다.

VM의 장점

  • 보안
    • Container가 host 커널을 공유한다는 것은 container가 뚫리면 바로 host OS의 커널이 위험해질 수 있다. 동시에 호스트 커널까지 오지 않더라도 커널이 공격당하면, 커널을 공유한다는 개념 때문에 모든 Container가 위험해질 수 있다. 반면, VM의 경우 완벽하게 다른 VM이나 host가 보호된다.
  • 멀티 OS
    • 커널을 공유한다는 이유로 Container에서 할 수 없는 일이 바로 Host OS와 다른 OS를 올릴 수 없다는 점이있다.

Reference

Docker란 무엇입니까? | AWS

Docker와 VM

'Computer Science' 카테고리의 다른 글

SSL이란?  (0) 2024.02.19
HLS(HTTP 라이브 스트리밍)란?  (0) 2023.12.28
서버 이중화란? (HA, 클러스터링, Fail-Over)  (0) 2023.10.08

+ Recent posts