Namespace 란?
- 한덩어리의 데이터에 이름을 붙혀 충돌 가능성을 줄이고, 쉽게 참조할 수 있게하는 개념
Linux 커널의 namespace 기능은
Linux의 오브젝트에 이름을 붙임으로써 다음과 같은 6개의 독립된 환경을 구축할 수 있다.
1. PID namespace
- 프로세스에 할당된 고유한 ID를 말하며 이를 통해 프로세스를 격리할 수 있다
- namespace가 다른 프로세스 끼리는 서로 액세스할 수 없다
2. Network namespace
- 네트워크 디바이스, IP 주소, Port 번호, 라우팅 테이블, 필터링테이블 등의 네트워크 리소스를 namespace마다 격리시켜
독립적으로 가질 수 있다. 이 기능을 이용하면 OS 상에서 사용중인 Port가 있더라도 컨테이너 안에서 동일한 Port를 사용 가능하다.
3. UID namespace
- UID, GID를 namespace 별로 독립적으로 가질 수 있도록 한다.
- namespace 안과 호스트 OS 상에서 서로 다른 UID, GID를 가질 수 있다.
4. Mount namespace
- 호스트 OS와 namespace가 서로 다른 격리된 파일시스템 트리를 가질 수 있도록 한다
(마운트는 컴퓨터에 연결된 기기나 기억장치를 OS에 인식시켜 사용가능한 상태로 만드는 것을 의미한다)
5. UTS namespace
- namespace 별로 호스트명이나 도메인 명을 독자적으로 가질 수 있다
6. IPC namespace
- 프로세스간 통신(IPC) 오브젝트를 namespace 별로 독립적으로 가질 수 있다
'Linux > Linux' 카테고리의 다른 글
Linux - Caused by: java.net.SocketException: Permission denied 에러 해결방법 (0) | 2019.09.10 |
---|---|
Linux - No Java executable found in current PATH: 해결방법 (/usr/bin 링크를 지웠을 때) (0) | 2019.08.03 |
Linux - 컴파일 설치 이유와 방법 - 수정중 (0) | 2019.02.05 |
Linux - cGroups 란? (0) | 2019.02.01 |