ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Docker] Docker의 기본 개념 및 실행 흐름
    Dev Ops/Docker 2023. 1. 21. 19:00
    반응형

    Docker란?

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

    - 다양한 프로그램, 실행 환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포와 관리를 단순화
    - 백엔드 프로그램, 데이터베이스 서버, 메시지 큐 등 어떤 프로그램도 컨테이너로 추상화 가능
    - 조립PC, AWS, Azure, Google cloud 등 어디서든 실행 가능

    Docker Container

    : 격리된 공간에서 프로세스가 동작하는 가상화 기술 중 하나

    📍참고: 기존의 가상화 방식
    1) OS 가상화
     - 호스트 OS 위에 게스트 OS 전체를 가상화하여 사용(VMware, Virtual Box)
     - 사용법이 간단하지만 무겁고 느려 운영환경에서 사용 불가
    2) HVM(CPU 가상화), 반가상화
     - 게스트 OS가 필요하지만 전체 OS를 가상화하지 않기 때문에 성능이 어느정도 향상(AWS 등의 가상 컴퓨팅 기술의 기반이 됨)
    3) 리눅스 컨테이너(LXC) : 프로세스 격리
     - CPU나 메모리는 프로세스가 필요한 만큼만 추가로 사용, 성능상 손실이 거의 없음

    ➡️ 도커는 LXC 기반으로 시작하였으며, 0.9 버전 이후부터 자체적인 libcontainer 기술을 사용했으며 추후 rucC 기술에 합쳐짐

    Docker Image

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


    - 상태값을 가지지 않고 변하지 않음 (Immutable)
    - 컨테이너는 이미지를 실행한 상태이며, 추가되거나 변하는 값은 컨테이너에 저장
    - 같은 이미지에서 여러 개의 컨테이너를 생성할 수 있으며, 컨테이너 상태가 바뀌거나 삭제되도 이미지는 변하지 않음
    - 도커 이미지는 Docker hub에 등록하거나 Docker Registry 저장소를 직접 만들어 관리할 수 있음

    레이어 저장 방식

    이미지 컨테이너에 담긴 파일들을 레이어화하여 여러개의 레이어를 하나의 파일 시스템으로 사용할 수 있게 함(유니온 파일 시스템)

    - 이미지는 여러개의 읽기 전용 레이어로 구성되고 파일이 추가되거나 수정되면 새로운 레이어가 생성

    반응형

    댓글

Designed by Tistory.