본문 바로가기
Study/Docker

[Docker] Docker를 사용하는 이유

by JYHAN 2020. 5. 6.

docker

Docker란?

  리눅스 컨테이너를 기반으로 서비스를 패키징하고 배포하는데 유용한 오픈소스 프로그램

 

Docker를 사용하는 이유

  기존 방식은 특정 서버 환경에 웹 서비스를 배포할 때, JVM부터 톰캣, 리눅스 버전까지 설치 방법이 다르기 때문에 복잡하다. 

이 문제를 해결을 위한 것이 바로 '컨테이너(Container)'의 개념이다.

도커를 사용하면 컨테이너에 '이미지(Image)'를 담아서 구동시키는 방식으로 손쉽게 배포할 수 있다.

 

  1. DockerFile을 만들어서 소프트웨어를 컨테이너에 담아서 구동할 것이다라고 명시한다.
  2. DockerFile을 만든 후 빌드를 해주면 알아서 Docker Image가 알맞게 생성이 된다.
  3. 만들어진 Docker Image를 구동시키면 도커 컨테이너 위에서 실행이 된다.

 

VM과 컨테이너의 차이

VM & Container

VM

  • VM의 경우 Guest OS와 Host OS는 별개로 존재할 수 있다는 점에서 서로 의존적이지 않다.
  • Guest OS의 I/O 기능이 사실상 Host OS를 거쳐서 이루어지기 때문에 속도가 느리다는 단점이 있다.
  • Guest OS 자체가 완전히 새로운 운영체제로서 존재해야 되기 때문에 가벼운 OS를 설치하려고 해도, 용량이 크다.

컨테이너

  • 컨테이너의 경우 가상 머신 대신에 도커 엔진(Docker Engine) 위에서 동작한다.
  • 별도의 Guest OS가 사용되지 않아서 성능적으로 매우 개선된다. 메모리 용량도 적게 차지한다.
  • 단, 기본적으로 사용하고 있는 운영체제와 도커의 컨테이너(Container)에 의존성이 존재한다.
  • 이로 인해 각종 보안 문제로 공격을 받은 적이 있다.

 

Docker 패러다임

 

Docker

는 변경 불가능한 인프라(Immutable Infrastructure)를 주요 패러다임으로 상정하고 있습니다.

기본적으로 특정한 소프트웨어가 자주 수정되는 경우 서비스 안정성에 여러 가지 문제가 발생할 수 있습니다

 

따라서 서버에 문제가 생겨서 업데이트를 해야 되는 경우 그냥 삭제해버리면 됩니다.

 

  서버 패치 등은 지속적으로 이루어져야 하는데 '어떻게 한 번 서버를 구축하고 나서 업데이트를 안 할 수 있을까요?' 사실 이는 처음 들었을 때 이해하기 힘들 수도 있는데요. 도커를 쓰다 보면 서버 자체를 들었다 놨다 하는 것이 익숙해지실 겁니다. 다시 말해, 서버를 업데이트를 해야 할 때는 새로운 도커 이미지 자체를 업데이트해서 그냥 컨테이너에 올리는 겁니다. 기존에 돌아가던 컨테이너는 완전히 '제거'하면 됩니다.

 


ndb796.tistory.com/90

 

서비스 배포의 끝판왕, 도커(Docker)의 개요 대해서 알아보자!

도커(Docker)의 개요 나동빈 ※ 도커의 개요 ※ 이번 시간에는 최근까지 소프트웨어 개발자들에게 계속 핫한 주제였던 도커(Docker)에 대해서 알아보도록 하겠습니다. 도커(Docker)란 리눅스 컨테이

ndb796.tistory.com

 

댓글