Docker

기본 개념

애플리케이션을 개발, 배포, 실행하기 위한 오픈소스 컨테이너화 플랫폼

Docker를 사용하면 주변 환경에 상관 없이 똑같이 어플리케이션이 실행을 할 수 있도록 해준다.


도커의 구성 요소

도커 이미지 (Docker Image) 도커 컨테이너 (Docker Container)
컨테이너의 설계도 (container blueprint) 도커 이미지 인스턴스 (image instance)
변형 불가 (immutable) 쓰기 가능 (writable)
컨테이너 없이 존재 가능 컨테이너는 이미지를 실행시켜야 존재
컴퓨팅 자원을 필요로 하지 않음 실행을 위해 컴퓨팅 자원 필요
공개/비공개 레지스트리 플랫폼으로 공유 이미 실행 중인 개체는 공유 필요 없음
단 한번만 생성 같은 이미지로 부터 다수의 컨테이너 생성

도커 이미지(Image)

  • 컨테이너를 실행할 수 있는 실행파일, 설정 값들을 가지고 있는 것
    • 더 이상 의존성 파일을 컴파일하거나 이것저것 설치할 필요가 없는 상태의 파일을 의미
    • 이미지를 컨테이너에 담고 실행시키면 해당 프로세스가 동작함
  • 도커 이미지의 생성 방식
    • 여러 개의 읽기 전용 레이어로 구성되고 파일이 추가되면 새 레이어가 생성돼서 추가됨
    • 기존 이미지에 추가적 구성이 필요할 때 다시 다운로드 하는 것이 아니라 기존 이미지에 레이어를 추가하여 구성을 올려주는 방식

도커 컨테이너(container)

  • 이미지를 실행한 상태로 응용프로그램의 종속성과 함께 응용프로그램 자체를 패키징 하거나 캡슐화하여 격리된 공간에서 프로세스를 동작시키는 기술
  • 특징
    • 컨테이너는 이미지 레이어에 읽기/쓰기 레이어를 추가하는 것으로 생성됨
    • 종료되었다고 해서 삭제되지는 않음
    • 한 서버는 여러 개의 컨테이너를 가져도 상관없으며 각각 독립적으로 실행
    • 컨테이너는 커널 공간과 호스트 os 자원 공유함

결론

필요한 모든 환경과 코드를 패키징하여 이미지로 만들고, 이를 인스턴스화하여 컨테이너라는 격리된 공간에서 실행(Run)시키는 것이 도커의 기본 작동 원리이다.

Categories:

Updated:

Leave a comment