도커는 LXC(Linux Container) 기술을 기반으로 만들어졌다. (Docker 1.8 이전 버전까지 사용)

LXC

Host OS에서 프로세스 간 벽을 만드는 기술이다.

LXC에 포함되는 기술들 :

  • 커널 네임스페이스 (ipc, uts, 마운트, pid, 네트워크, 사용자)

  • Apparmor와 SELinux 프로파일

  • Seccomp 정책

  • Chroots (pivot_root 사용)

  • 커널 캐퍼빌리티

  • CGroups (Control Groups)

LXC 컨네이너는 보통 chroot와 실제 가상머신의 중간적인 성격을 갖고 있다고 생각되어 진다. LXC의 목적은 별도의 독립적인 커널이 없어도 보통의 리눅스 설치에 가까운 환경을 만드는 것이다.

CGroups

프로세스들의 자원의 사용(CPU, 메모리, 디스크 입출력, 네트워크 등)을 제한하고 격리시키는 리눅스 커널 기능

Kernel namespace

리눅스의 namespace 기술은 하나의 시스템에서 수행되지만 각각 별개의 독립된 공간인 것처럼 격리된 환경을 제공하는 lightweight 가상화 기술이다.

종류:

    Mount

    Process ID (PID)

    Network

    Interprocess Communication (IPC)

    UTS

    User ID (UID)


Reference

LXC : https://linuxcontainers.org/ko/lxc/introduction/#lxc

 

Linux Containers - LXC - 소개

LXC 란? LXC는 리눅스 커널 컨테이너 기능을 위한 사용자영역 인터페이스입니다. 강력한 API와 간단한 도구들을 통해 리눅스 사용자가 쉽게 시스템 또는 어플리케이션 컨테이너들을 생성/관리할 수 있게 해줍니다. 기능 현재 LXC는 컨테이너를 만들기 위해 아래의 커널 기능들을 사용하고 있습니다. 커널 네임스페이스 (ipc, uts, 마운트, pid, 네트워크, 사용자) Apparmor와 SELinux 프로파일 Seccomp 정책 Chroots (pivot

linuxcontainers.org

CGroups : https://linuxism.tistory.com/1601

 

linux - cgroups (control groups)

cgroups (control groups)은 프로세스 그룹의 리소스 (CPU, 메모리, 디스크 I / O 등)의 이용을 제한 · 격리하는 Linux 커널 의 기능. "process containers"라는 명칭으로 Rohit Seth 2006 년 9 월부터 개발을 시..

linuxism.ustd.ip.or.kr

Namespace : http://jake.dothome.co.kr/namespace/

+ Recent posts