리눅스/Part1. Ch02. 컨테이너를 구성하는 리눅스 기술

10. (실습) namespace - Mount 네임스페이스

Engineer-Lee 2022. 6. 25. 00:56
반응형

Mount 네임스페이스 실습

새로운 Mount 네임스페이스로 마운트한 위치에 파일 생성하자

 

 

1. sudo su 명령어로 루트 계정으로 전환한다.

 

2. 우분투에서는 unshare 명령어를 통해 네임스페이스를 구성할 수 있다.

    unshare --help 명령어를 이용하여 unshare 명령어의 옵션에 대해 알아보자

 

3. echo $$ 명령어로 현재 프로세스 ID를 확인하고, 우리는 새로운 mount 네임스페이스를 생성할 것이므로 

    unshare -m /bin/bash 명령어를 입력한다.

 

4. 다시 echo $$ 명령어로 현재 프로세스 ID를 확인해보면 새로운 프로세스가 생성돼서 새로운 프로세스 ID가 나온다. 

 

5. mount -t tmpfs tmpfs /mnt 명령어로 임시 파일 스토리지 파일시스템인 tmpfs를 mnt 디렉토리에 마운트한다.

그  후 cd /mnt 명령어로 디렉토리 안으로 들어간다.

 

6. echo "Hello" > /mnt/hello.txt 명령어로 마운트된 위치에 파일을 생성한다.

 

7. 새로운 터미널 창을 열어서 ls -l /mnt 명령어를 입력하면 해당파일이 존재하지 않는다고 나온다.

    이를 통해 다른 네임스페이스에 있다는 걸 알 수 있다.

 

8. nsenter 명령어는 지정한 프로세스의 네임스페이스에 enter 한다.

이를 이용해서 새 터미널 창에서 sudo su 명령어로 루트 계정으로 접속 후 nsenter -t $TARGET_PID -a 명령어로 텍스트를 작성한 네임스페이스에 접속한다.

$TARGET_PID 은 타켓의 프로세스 ID 값이고 -a 옵션은 모든 네임스페이스를 프로세스가 공유하는 형태이다.

 

9. 이제 같은 네임스페이스에 있으므로 생성한 텍스트 파일을 볼 수 있다.

 

10. exit 명령어로 mount namespace를 종료한다.

     그 후 echo $$ 명령어로 프로세스 ID를 확인하면 처음에 확인했던 프로세스 ID가 나오는걸 볼 수 있다.

반응형