[Docker] 02. 도커 컨테이너에 사용된 기술
카테고리: DOCKER
태그: docker
[Docker] 02. 도커 컨테이너에 사용된 기술

🔔 (1) chroot (Change Root Directory) - Confined Environment (제한된 환경)
-
유닉스에는 루트 디렉토리를 변경하는 chroot 라는 명령이 있으며, 특정 디렉토리를 루트 디렉토리로 설정하면 「chroot 감옥」 이라는 환경이 생성되는데, 이 안에서는 바깥의 파일과 디렉토리에 접근할 수 없다.
-
chroot는 디렉토리 경로를 격리하기 때문에 서버 정보 유출과 피해를 최소화 하는데 주로 사용되었다 그러나 chroot 는 chroot 감옥에 필요한 실행 파일과 라이브러리를 미리 준비와 설정 방법 또한 복잡하고 완벽한 가상환경이 아니기에 제약이 따랐다.
🔔 (2) 리눅스 컨테이너 (LinuX Container, LXC)
- 이후 리눅스에서는 LXC 기능을 제공하게 되는데, LXC는 OS 수준의 가상화 기술로 리눅스 커널을 공유하면서 프로세스를 격리된 환경에서 실행하여 VM과 달리 커널을 공유하는 방식이기 때문에 성능 손실이 거의 없다.
🔔 (3) namespace, cgroups
- 리눅스 커널에서 namespace는 컨테이너라 불리는 격리된 공간을 제공하며, cgroups는 각각의 컨테이너가 사용할 수 있는 리소스를 제한해준다.
🔔 (4) Union File System
-
복수의 파일 시스템을 하나의 파일 시스템으로 마운트하는 기능을 Union Mount 라고하며, 두 파일 시스템에서 동일 파일이 있다면 나중에 마운트된 파일 시스템의 파일을 덮어쓴다(Overlay).
-
Union Mount를 지원하는 파일 시스템을 Union File System 라고 하며, 도커 이미지는 Union File System 으로 오버레이되는 복수의 레이어 구조로 구현되었다.
댓글 남기기