Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- FCM
- Java
- 공룡책
- Coputer Science
- JPA
- Test code
- JPQL
- 자바
- mapstruct
- 인프콘2023
- MySQL
- db
- Test Doulbe
- ObjectMapper
- ExceptionResolver
- Server
- 테크쇼
- proxyFactory
- Test
- 소프티어
- backend
- 일상
- RequestBody
- Junit 5
- enumSet
- modelmapper
- OS
- softeer
- Service 계층 테스트
- Spring
Archives
- Today
- Total
공부내용공유
linux - name space (네임스페이스) 본문
서론
docker 를 공부하다가 docker 가 linux 의 name space 를 기반으로 만들어졌다는걸 알게되었고
docker 를 보다 더 잘 이해하려면 이 기반이 되는 기술부터 잘 알아야겠다 생각이 들어서 정리를 하게 되었다.
목차
- 리눅스 네임 스페이스란?
- 네임 스페이스 종류
리눅스 네임 스페이스란?
- 컨테이너 기반 가상화 기술의 기반이 되는 기능이다.
- 하나의 시스템에서 사용되지만 별개의 독립 공간처럼 격리된 환경을 제공하는 light weight 가상화 기술이다.
- 빌라에 각 층, 호수 별로 독립되어진 주거환경을 제공하는것과 유사하다.
이렇게 네임스페이스의 특징을 보면 하이퍼바이저 (hypevisor) 와 유사한것처럼 보이지만 둘은 차이가 있다.
하이퍼바이저
- 하드웨어를 물리적으로 구분해서 가상화를 한다.
- 즉 게스트 OS는 물리적으로 구분된 공간에서 돌아간다.
네임 스페이스
- 하드웨어를 분리하지 않는다.
- 동일한 OS, Kernel 에서 작동한다.
한 덩어리의 데이터에 이름을 붙여 분할을 함으로 충돌 가능성을 줄인다. 이를 통해 같은 이름이라도 이름 공간이 다르면 다른 실체로 처리하게 된다.
네임 스페이스 종류
UTS namespace
- hostname 혹은 domain name을 네임스페이스 별로 격리시켜준다.
IPC namespace
- IPC (inter process communication) 프로세스간 통신
- 프로세스간 통신을 주고 받는 경로를 격리시킨다.
- 즉 프로세스간 통신 (semaphore, file locking, mutex) 등에 대한 접근 제어
PID namespace
- Process Id 를 분할 관리한다.
- PID namespace를 통해 하나의 시스템에서 같은 PID가 2개인것처럼 프로세를 만들 수 있다.
- 이 기능을 통해 docker 가 같은 커널임에도 pid 1을 가질 수 있다.
NS namespace
- Mount namespace
- 파일 시스템의 마운트(mount) 지점을 분할하여 격리한다.
- 지정된 파일 시스템을 루트처럼 생각하여 동작하게 된다.
NET namespace
- 네트워크 인터페이스, iptables 등 네트워크 리소스 관련 정보를 분할한다.
- ip,port,라우팅 테이블 등등
USER namespace
- user 와 group id 를 분할하고 격리한다.
- 프로세스별 UID, GID