왜 도커를 사용할까?

  1. 다양한 시스템 환경(Windows, Mac, Linux 등)에서 우리가 구현한 것을 쉽게 배포하기 위해서이다.
  2. Virtual Space(가상의 공간)이 필요하기 때문이다.
    • VM은 오버헤드가 크다.
    • 빠른 성능을 원하기 때문에 docker를 사용한다.

Docker vs VM (OS의 유무)

VM은 Host OS위에 다시 Guest OS를 설치하는 구조이다. 이 과정에서 오버헤드가 발생한다. 이에 반해 도커는 OS위에 다시 OS를 깔지 않는다. 대신 라이브러리와 어플리케이션의 형태만 가진다.

도커에도 Ubuntu 18.04와 같이 OS 형태의 이미지가 올라가지 않나요?

이는 Host OS(Mac)와 이미지에 포함된 파일(Ubuntu)들을 매핑하여 마치 Host OS가 이미지의 OS처럼 행동하도록 하는 기술이 도커에 적용되어 있기에 가능하다.

  • OS = 커널 + 파일 시스템/라이브러리 (커널은 컴퓨터와 리소스를 매핑해주는 역할이다.)
  • Image = 파일 시스템/라이브러리

또한, VM은 자원을 정적으로 할당하며 컨테이너 간에 유휴자원을 공유할 수 없는 반면에 도커는 동적으로 자원을 할당하여 컨테이너 간에 유연하게 유휴 자원을 공유할 수 있다.

도커 실행 구조

  • dockerfile을 실행할 수 있는 형태로 image화(docker image) 한다.
  • docker image를 dockerhub에 업로드한다. 혹은 dockerhub에 업로드된 docker image를 다운로드한다.
  • image파일을 실행한 것을 컨테이너라고 부른다.
  • 컨테이너를 마치 프로세스처럼 여러 개를 실행할 수 있다.
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기