Zero to Hero
Published 2021. 4. 23. 13:23
Docker 02 Programming

Docker를 지탱하는 기술

chroot(change root)

  • 프로세스의 새로운 루트 디렉터리를 만든다.
  • 그리고 그 루트의 상위로 접근할 수 없게 하는 기술
  • 즉 호스트 파일 시스템이 아닌 별도의 실행환경을 가지게 된다.

namespace

  • 하나의 시스템(호스트 OS)에서 수행되지만
  • 독립된 공간처럼 격리된 환경을 제공하는
  • 리눅스 커널의 경량 프로세스 가상화 기술

cgroup(control group)

  • 하나의 프로세스에 할당되는 물리적인 자원을 조정하는 기술
  • CPU개수, CPU 사용률, 최대 할당 Memory 등

Overlay File System

  • 공통적으로 사용하는 이미지는 Read-Only로 하나의 레이어를 공유하고
  • Write 전용 레이어를 두어 컨테이너별로 사용하는 데이터 및 레이어를 따로 관리하는 기술
  • 여러 컨테이너의 중복 레이어 발생을 막아 자원을 효율적으로 사용할 수 있다.

Docker가 지원하는 추가 기능

네트워크 가상화

  • 물리적으로 존재하지 않는 LAN 카드를 가상화해 컨테이너별로 부여하고
  • 컨테이너별로 독립적인 네트워크 통신을 할 수 있게 한다.
  • 즉 컨테이너는 도커 엔진을 통해서 실제 물리 랜카드와 통신을 한다.

Volume

  • 컨테이너 별로 영구 저장하고 싶은 데이터를 관리하는 기술
  • 일반적으로 컨테이너는 휘발성이라 컨테이너 내부의 변경사항을 영구 저장할 수 없음
  • 호스트 OS와 미리 연결된 디렉터리, 혹은 특정 공간을 이용해 컨테이너의 파일을 보관할 수 있다.

'Programming' 카테고리의 다른 글

Spring Study 02  (0) 2021.04.28
Spring Study 01  (0) 2021.04.27
Docker 01  (0) 2021.04.23
M1 맥북에서 Docker + Tomcat 이미지 사용하기  (0) 2021.04.17
/dev/null 2>&1  (0) 2021.04.05
profile

Zero to Hero

@Doljae

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!