도커

hkoo·2020년 6월 25일
0

도커는 컨테이너 기반의 오픈소스 가상화 플랫폼

도커는 컨테이너로 추상화하여 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순화시켜주는 프로그램이다. 컨테이너로는 백앤드 프로그램, 데이터베이스 서버, 메시지 큐등 어떤 프로그램도 컨테이너로 추상화가 가능

Docker가 나오게 된 이유

기존 가상화 방식 VM (VMware)

  • 기존의 가상화 방식은 VM (OS를 가상화)
  • 호스트 OS 위에 게스트 OS 전체를 가상화하여 사용하는 방식
  • 비교적 사용법이 간단하지만 무겁고 느림

이러한 문제와 서버의 리소스를 효율적으로 사용하기 위해 개발된 것이 Docker

Docker의 장점

  • 도커는 오픈소스로써 사용이 무료
  • 도커는 전체 OS를 가상화하는 방식이 아닌 Container를 통한 가상화
  • Container는 VM의 오버헤드인 게스트 OS와 하이퍼바이져를 제거함으로 가볍고 빠르게 application을 배포 및 구동이 가능하게 함
  • 새로운 컨테이너를 만드는 시간은 겨우 1~2초 정도
  • 빌드된 이미지가 있다면 컨테이너를 만들어 애플리케이션을 배포하는 시간도 몇초정도

image란?

  • 도커에서 이미지란 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는것
  • 이미지는 readOnly로 변하지 않는다.
  • 컨테이너는 이미지를 추가한 상태라고 볼 수 있고 추가되거나 변하는 값은 컨테이너에 저장된다.
  • 같은 이미지로 여러개의 컨테이너를 생성할 수 있고, 컨테이너가 삭제되거나 바뀌어도 이미지는 변하지 않고 그대로 남음

도커에서 이미지 사용 예

  • 프로그램에 맞게 세팅한 OS, DB, 스케줄러 등을 하나의 이미지로 만들어 해당 이미지를 실행하면 OS부터 DB, application까지 되어있는 서버가 만들어짐
  • 위에 서버를 클러스터링 하기 위해 해당 이미지로 여러개의 컨테이너를 만들어서 클러스터링에 활용

Docker의 좋은 기능

  • 손쉬운 서버 클러스터링
  • 모든 컨테이너들이 접근할 수 있는 Volume을 만들 수 있음
  • Docker hub를 통해서 여러가지 open source 컨테이너를 받아서 사용가능 (git, nodejs 생태계와 비슷)
  • 이러한 Docker hub를 통해서 사람들이 만들어 놓은 로깅, 모니터링, 스토리지, 네트워크, 컨테이너 관리, 배포등 다양한 분야에서 다양한 오픈소스 툴들이 존재한다.

Kubernetes는 무엇인가?

  • 쿠버네티스는 도커 컨테이너 작업 관리를 더욱 편리하게 하기 위한 오픈소스 플랫폼
  • 작업을 자동화시켜주고 클러스터링을 쉽고 효율적으로 하게 해줌
  • 클러스터링된 서버 중 하나가 죽어더라도 다른 컨테이너로 바로 해당 서버의 내용을 넘겨주어 사용에는 전혀 문제가 없도록 해줌 => 도커 이미지 덕분에 가능
profile
코딩 잘하고 싶다

0개의 댓글