Fork3 4. Mount 네임스페이스로 파일시스템 분리하기 Go로 "컨테이너스러운" 프로세스를 만들어보자. 지금까지 PID, UTS 네임스페이스를 활용하여 프로세스 ID와 호스트 명을 격리하였다. 이번엔 파일시스템을 분리하여 컨테이너 안에서 진짜 루트 디렉터리가 다르게 보이도록 만들어보자. 이를 위해 Mount 네임스페이스를 활용할 것이다. 🔍 Mount 네임스페이스란?Mount?리눅스에서는 디스크나 외부 장치를 어떤 디렉터리 경로에 연결해야만 접근할 수 있다. 이 과정을 "mount"라고 부른다.$ sudo mount /dev/sdb1 /mnt/usb$ ls /mnt/usb 사진/ 문서/ 영화/리눅스는 하나의 거대한 트리 구조(/) 안에 모든 저장 장치, 파티션, 네트워크 파일시스템 등을 "붙여서" 사용하게 된다. C:\또는 D:\와 같이 드라이브가 분리.. 개발일기/Docker 2025. 5. 30. 2. PID 네임스페이스로 프로세스 격리하기 (심화) Go로 "컨테이너스러운" 프로세스를 만들어보자. 지난 포스팅에서 mydocker run bash 명령으로 bash를 PID 1번으로 실행할 수 있었다. 이번 편에서는 그 구조가 왜 그렇게 동작하는지, 그리고 PID 네임스페이스의 격리 효과가 정확히 무엇인지 코드와 몇 가지 실험으로 구조를 파악해보자. PID 네임스페이스PID 네임스페이스는 리눅스 커널의 네임스페이스 중 하나로, 각 프로세스가 고유한 PID 트리를 갖도록 격리시킨다. 이때 아래와 같은 특징을 볼 수 있다. 부모 네임스페이스에서 보면 자식 네임스페이스의 PID가 일반적인 번호 (예: 12345)자식 네임스페이스 안에서는 해당 프로세스가 PID 1부터 시작이 PID 1 프로세스는 네임스페이스의 init 프로세스로, 모든 자식의 조상🔍 왜 자.. 개발일기/Docker 2025. 5. 29. 1. 컨테이너 만들기 - fork/exec로 컨테이너 프로세스 분리하기 Go로 "컨테이너스러운" 프로세스를 만들어보자. 격리Docker와 같은 컨테이너 기술에서 "격리"라는 키워드는 컨테이너가 제공하는 가장 핵심적인 개념 중 하나이다. 세부적으로 하나하나 그 장점을 나열해보자.1. 🔐보안 (Security)격리를 통해 각 컨테이너는 서로 다른 컨테이너나 호스트 시스템과 직접적으로 상호작용할 수 없다. 만약 컨테이너 내부에서 시스템에 악영향을 주는 코드가 실행되더라도, 다른 컨테이너나 호스트 전체로 피해가 전이되는 것을 막을 수 있다.2. 🧩자원 분리 (Resource Separation)CPU, 메모리, 네트워크, 디스크 I/O 등 시스템 자원을 분리하여 사용할 수 있다. 특정 컨테이너가 무한히 자원을 사용하는 것을 방지하고, 다른 컨테이너에 영향을 주지 않도록 보장할 .. 개발일기/Docker 2025. 5. 28. 이전 1 다음