TIL | Docker 개요

sik2·2021년 5월 9일
2

Docker

목록 보기
1/4

컨테이너 기술

개요

  • 도커란 컨테이너 기반의 오픈소스 가상화 플랫폼
  • 컨테이너란 호스트 OS상에 논리적인 구획(컨테이너)을 만들고, 애플리케이션을 작동시키기 위해 필요한 라이브러리애플리케이션 등을 하나로 모아, 마치 별도의 서버인 것처럼 사용할 수 있게 만드는 것

기존 가상화 방식과의 차이

기존

  • 기존에는 OS를 가상화 하였다(VMware, VirtualBox) ⇒ 호스트 OS위에 게스트 OS 전체를 가상화하여 사용하는 방식
  • 간단하지만 무겁고 느려서 운영환경에서 사용 불가하다.

개선책

  • CPU 가상화 기술 HVM을 이용한 Kernel-based Virtual Machine(KVM) 과 반가상화(Paravirtualization) 방식의 XEN 등장
  • 이러한 기술을 기반으로 Open Stack, AWS, Rackspace 같은 클라우드 서비스에서 가상화 컴퓨팅 기술의 기반이 되었다.
  • 개선책이기는하나 성능에 손실이 있다.

도커의 아이디어

  • 프로세스 격리하는 방식이 등장
  • 프로세스를 격리시키기 때문에 가볍고 빠르게 동작한다.
  • CPU나 메모리는 딱 프로세스가 필요한 만큼만 추가로 사용하고 성능적으로도 거의 손실이 없다.

이미지 출처

장점

  • 하나의 서버에서 여러개의 컨테이너를 실행하며 서로 영향을 미치지 않고 독립적으로 실행하므로 가볍게 느껴진다.
  • 실행중인 컨테이너에 접속하여 명령어를 입력할 수 있다.
  • CPU메모리 사용량제한할 수 있고 호스트의 특정 포트연결하거나 호스트의 특정 디렉토리를 내부 디렉토리인 것처럼 사용가능
  • 새로운 컨테이너를 만드는데 속도가 빠르다(2초미만)

도커의 이미지

이미지 출처

개요

  • 이미지컨테이너의 실행필요한 파일설정값등포함하고 있는것
  • 상태값을 가지지 않고 변하지 않는다(immutable)
  • 컨테이너는 이미지를 실행한 상태 추가되거나 변하는 값은 컨테이너에 저장됨
  • 같은 이미지에서 여러개의 컨테이너 생성가능
  • 컨테이너의 상태가 바뀌거나 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남음

한마디로 개꿀띠

새로운 서버에 개발환경 구축시 의존모듈을 일일이 설치할 필요가 없다!

레이어 저장 방식(feat 도커에 열광하는 이유)


이미지 출처

개요

  • 도커 이미지는 컨테이너를 실행할 모든 정보를 담고 있기 때문에 요량이 수백 메가다
  • 처음엔 상관없지만 이미지 파일이 늘어났을 경우 비효율이 발생한다
  • 이를해 해결하고자 layer 개념이 사용

3줄 요약

  • 개발 생태계에 맞추어 탄생한 아이디어 작품(마치 아이폰과 같이)
  • 가상머신과 비교시 훨등한 실행 속도, 메모리 엑세스, 파일 시스템, 네트워크 실행 성능 향상
  • 도커는 이미지를 구성하여 컨테이너(실행 환경)에서 실행가능(자동화)

다음포스팅 예고

레이어 저장 방식이란 무엇이고 왜 더 좋을까?

ref


초보를 위한 도커 안내서 - 도커란 무엇인가?

profile
문제해결을 즐기는 개발자

관심 있을 만한 포스트

0개의 댓글