본문 바로가기

개발/AWS

[Docker] 2. 컨테이너 기반 기술 :: 리눅스 chroot 기능 활용

로그인만 console에서 해주고 mobaXterm 접속

 

 

newroot로 파일 시스템이 격리 됐음

 

 

완전히 격리된 root를 제공해주고 있음.

 

 

리눅스 커널의 namespace 기능으로

특정 프로세스에게 이러한 기능을 지원한다.

namespace라는 개념은 사실 아주 광범위한 단어이다.

쓰이는 문맥에 맞게 해석을 해야하는데,

쿠버네티스의 namespace

리눅스 커널의 namespace

그 외 Language별로 (JAVA 등)의 namespace

등등 무언가 격리를 해주는 느낌의 단어이다.


 

UNSHARE 명령

run program with some namespaces unshared from parent

unshare -m 명령을 사용하여 mount namespace를 격리

 

-m : 마운트

마운트라는 개념을 정말 많이 활용한다.

특히나 스토리지(볼륨) 공유할 때, 마운트 개념을 정말 많이 씀.

 

기본적으로 리눅스 OS에서 마운트를 하게 되면

모든 프로세스가 Mount point를 공유한다.

unshare 기능으로 특정 포인트로부터 mount 포인트를

격리시킬 것이다.

 

# ls -l /proc/$$/ns/mnt

명령어로 확인했을 때,

서로 다른 root가 존재하고

다른 커널의 root는 보이지 않는 것을 알 수 있다.

 

 

UTS namespace

 

마찬가지로 격리 된 것을 볼 수 있음.