Docker

[Docker] 기본 개념

비번변경 2021. 6. 18. 18:00

도커; Docker

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

다양한 프로그램과 실행환경을 컨테이너로 추상화하여 동일한 인터페이스를 제공한다.

프로그램 배포 및 관리를 단순화할 수 있다.

 

컨테이너; Container

격리된 공간에서 프로세스가 동작하는 기술

추가적인 OS를 설치하는 가상화의 성능을 개선하기 위해 등장한 프로세스 격리(리눅스) 컨테이너 이용

컨테이너를 이용하면 가벼운 가상 머신을 사용하는 것과 비슷하다고 느낄 수 있다.

 

이미지; Image

컨테이너 실행에 필요한 파일과 설정값 등을 포함하고 있는 것

상태 값은 가지고 있지 않으며 변하지 않는다(immutable).

컨테이너는 이미지를 실행한 상태라고 할 수 있다.

이미지는 도커 허브와 같은 도커 이미지 레지스트리 저장소에 저장하여 관리한다.

  • 레이어; Layer
    이미지 구성 요소
    컨테이너 실행에 필요한 정보를 가지고 있기 때문에 용량이 큰데, 기존 이미지에 파일 하나를 추가했다는 이유로 이미지를 재 다운로드하는 것을 비효율적이기 때문에 등장한 개념으로, 각 레이어는 변경 사항에 대한 정보만 저장한다.
    이미지는 여러 개의 읽기 전용 레이어로 구성되어 있다.
    파일을 수정하거나 추가하는 경우 새 레이어가 생성된다.

도커 레이어
[출처] https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html

컨테이너를 생성할 때에도 레이어 방식을 사용하며, 기존 이미지 레이어 위에 read-write 레이어를 추가하여 컨테이너 실행 중에 생성되는 파일이나 변경 내용은 read-write 레이어에 저장된다.

  • Dockerfile
    이미지 생성 과정을 DSL 언어를 이용하여 적은 파일
    의존성 패키지 설치 및 설정 파일 생성 등의 과정을 관리할 수 있다.