Docker Technologies

유석현(SeokHyun Yu)·2023년 10월 8일
0

도커&쿠버네티스

목록 보기
5/7
post-thumbnail

유니언 파일 시스템(Union File System)

유니언 파일 시스템은 여러 파일 시스템을 하나로 통합하여 사용자에게 제공한다. Docker의 이미지 구조는 이러한 유니언 파일 시스템의 개념을 활용하며, 여러 읽기 전용 계층과 하나의 쓰기 가능 계층으로 구성된다.

각 계층은 독립적으로 운영되기 때문에, 하나의 이미지에서 발생하는 변경이 다른 이미지에 영향을 미치지 않는다. 이 특성 덕분에 이미지의 재사용성이 높아지고, 이미지 관리가 효율적으로 이루어진다.

"copy-on-write" 전략은 데이터를 수정할 때 원본 데이터를 복사하여 쓰기 가능한 계층에 저장하는 방식이다. 이 방법은 데이터의 안정성을 유지하면서도 저장 공간을 효율적으로 사용할 수 있는 방식을 제공한다. 이러한 copy-on-write 메커니즘은 Docker와 같은 컨테이너 기술에서 중요한 역할을 담당하며, 자원 사용의 효율성과 시스템의 안정성을 동시에 증진시킨다.


리소스 격리 기술(Resource Isolation Technologies)

  • 네임스페이스(Namespaces)

    • 각 컨테이너는 독립된 실행 환경을 필요로 한다. 네임스페이스는 이러한 요구를 충족시키는 기술로, 각 컨테이너에 고유한 환경을 제공해 서로 간의 간섭을 방지한다.
  • 컨트롤 그룹(Cgroups)

    • 컴퓨터의 리소스(CPU, 메모리 등)를 효과적으로 분배하고 관리하는 데 필요한 기술이다. Docker는 컨트롤 그룹을 활용해 각 컨테이너에 적절한 리소스를 할당하거나 제한하는 역할을 수행한다.

추가적인 추상화 계층

Docker는 리눅스의 가상화 기능을 활용하여 컨테이너화된 애플리케이션을 실행한다. 다양한 리눅스 배포판과의 호환성을 보장하기 위해 추상화 계층을 도입하는데, 이 계층은 Docker가 다양한 리눅스 환경에서 안정적으로 작동하도록 지원한다. 추상화 계층을 통해 Docker는 하드웨어와 운영 체제의 세부 사항으로부터 분리되어, 일관된 환경에서 애플리케이션을 실행할 수 있다.

Docker의 추상화 계층은 여러 가상화 인터페이스나 라이브러리를 활용하는데, 이는 Docker가 리눅스 커널의 다양한 기능과 효율적으로 상호 작용하도록 한다. 예를 들어, cgroupsnamespaces와 같은 리눅스 커널 기능을 활용하여 리소스 제한, 격리 등을 수행한다.

Docker 컨테이너는 가상 머신과 달리 가벼운 가상화를 제공한다. 이는 각 컨테이너가 별도의 운영 체제를 가지지 않고, 호스트 시스템의 커널을 공유한다는 의미다. 이로 인해 Docker는 빠른 시작 시간과 낮은 오버헤드를 가진 컨테이너를 제공하며, 시스템 자원을 효율적으로 활용할 수 있다.

결론적으로, Docker의 추상화 계층은 다양한 리눅스 환경에서의 호환성과 효율적인 리소스 관리를 가능하게 하여, 애플리케이션의 배포와 관리를 간소화한다. 이는 개발자와 시스템 관리자에게 일관된 환경에서 애플리케이션을 배포하고 운영할 수 있는 강력한 도구를 제공한다.

profile
Backend Engineer

0개의 댓글