초보를 위한 도커 안내서 - 도커란 무엇인가? 를 보고 간추린 내용 입니다.

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

컨테이너 : 격리된 공간에서 프로세스가 동작하는 기술(프로세스 가상화)

기존의 가상화 방식 : OS 가상화

  • 비교적 사용법이 간단하지만 무겁고 느리다
  • 개선하기 위해 KVM(Kernel-based Virtual Machine)과 반가상화(Paravirtualization) 방식의 Xen이 등장한다. 이 방식은 게스트 OS가 필요하긴 하지만 전체 OS를 가상화 하는
    방식이 아니였기 때문에 호스트형 가상화 방식에 비해 성능이 향상 되었다. OpenStack, AWS, Rackspace 같은 클라우드 서비스에서 가상 컴퓨팅기술의 기반이 되었다.

Fig

  • OS 가상화 방법(전가상화, 반가상화)에 상관없이 어쨋든 성능문제가 생기기 때문에 이를 개선하기 위해 프로세스를 격리하는 방식이 등장한다.
  • 컨테이너는 그 방식중 리눅스에서의 방식이다.
  • 도커 이전에 다양한 방법들이 있었다. 예) 리눅스에서 cgroups와 namespace를 이용한 Xen

이미지 : 컨테이너 실행에 필요한 파일과 설정값들을 포함한다. 상태값을 가지지 않고 변하지 않는다.

  • 새로운 서버가 추가되면 미리 만들어 놓은 이미지를 다운받고 컨테이너를 생성만 하면 된다. 한 서버에 여러 개의 컨테이너를 실행할 수 있고 수십~수천대의 서버를 설치하는데
    어려움이 없다.

  • 도커는 완전히 새로운 기술이 아니며 컨테이너, 오버레이 네트워크, 유니온 파일이스템등을 잘 조합해 포장한 기술이다.

레이저 저장방식

  • 도커 이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있기 때문에 용량이 수백메가 이른다. 조금만 수정 했는데 이미지 전체를 다시 받는 것을 비효율적이기 때문에
    레이어layer 라는 개념을 적용했다. 수정된 레이어의 내용만 다시 다운 받으면 된다.

  • 컨테이너를 생성할 때도 기존의 이미지 레이어위에 읽기/쓰기 레이어를 추가한다. 컨테이너가 실행중에 생성하거나 수정한 데이터만 저장됨으로 효율적이다.

  • 이미지를 url 방식으로 관리하며 태그를 붙일 수 있다.

  • 도커는 이미지를 만들기 위해 Dockerfile 이라는 파일에 자체 DSL(Domain-Specific Language)를 이용해 이미지 생성과정을 적는다(이미지 생성의 편의를 제공함).

  • 도커이미지는 docker hub에서 무료로 저장소를 제공하며 관리할 수 있다(github 처럼).

앞으로는 서버를 운영하면서 나오는 이슈들을 포스팅 하겠습니다.