Skip to content

Linux namespaces

네임 스페이스는 커널 리소스를 분할하여 하나의 프로세스 집합이 하나의 리소스 집합을보고 다른 프로세스 집합이 다른 리소스 집합을 볼 수 있도록 Linux 커널의 기능입니다.

About

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

Features

현재, 리눅스에서 지원하는 이름공간은 다음과 같다:

  • Cgroup Namespace (cgorup)
  • IPC Namespace (ipc) - 프로세스간 통신 격리
  • Network Namespace
  • Mount Namespace - file system 의 mount 지점을 분할하여 격리
  • PID Namespace - PID(Process ID)를 분할 관리
  • UTS Namespace - hostname 을 변경하고 분할
  • USER Namespace - user와 group ID를 분할 격리
  • Time Namespace

UTS

UTS (UNIX Time-Sharing) namespaces 를 사용하면 단일 시스템이 서로 다른 프로세스에 대해 서로 다른 호스트 및 도메인 이름을 갖는 것처럼 보일 수 있습니다. "프로세스가 새 UTS 네임스페이스를 생성하면 ... 새 UTS 네임스페이스의 호스트 이름과 도메인이 호출자의 UTS 네임스페이스에 있는 해당 값에서 복사됩니다."

Linux Namespaces, cgroups, chroot 로 나만의 Docker 만들기

Docker는 리눅스 네임스페이스, cgroups 및 chroot를 사용하여 격리, 자원 관리 및 보안을 위한 선도적인 컨테이너화 플랫폼입니다.

  • 이 안내서는 도커 뒤에 있는 핵심 기술을 실제로 체험해 볼 수 있는 기회를 제공합니다.
  • 이 안내서는 기본 컨테이너 환경을 처음부터 구축하는 단계를 안내합니다.

방법:

  1. unshare 명령을 사용하여 새로운 네임스페이스 설정하기.
  2. 자원 할당을 관리하고 사용량을 제어하기 위해 cgroups 구성하기.
  3. debootstrap을 사용하여 루트 파일 시스템 구축하기.
  4. 필수 파일 시스템을 마운트하고 chroot를 사용하여 루트 디렉토리 변경하기.
  5. Nginx 웹 서버를 사용하여 컨테이너 내에서 애플리케이션 설치 및 실행하기.

이 안내서를 따라가면 소프트웨어 엔지니어들은 리눅스 네임스페이스, cgroups 및 chroot를 사용하여 도커와 유사한 환경이 어떻게 구축되는지에 대한 실용적인 이해를 얻을 수 있습니다.

도커는 더 많은 기능과 기능성을 제공하지만, 이러한 핵심 기술을 이해하는 것은 애플리케이션을 위한 격리되고 효율적인 환경을 만드는 데 중요합니다.

See also

Favorite site

Tutorials

References


  1. 44bits_-_container-network-1-uts-namespace.pdf