YoungSoo

도커 컨테이너와 유사한 환경 만들어보기 본문

Cloud/Container

도커 컨테이너와 유사한 환경 만들어보기

YoungSooSoo 2023. 2. 9. 17:34

Ubuntu 20.04 LTS 환경에서 도커 컨테이너와 유사한 환경을 만드는 실습을 진행하였다.

chroot로 유사한 환경을 만들어 주려고 하는데 chroot는 1979년에 나온 기능이고 컨테이너 기반 기술인 namespace, cgroup, Union Mount 등의 기능들이 있다.

namespace

chroot 명령을 사용하면 파일 시스템의 루트 디렉터리를 변경하고 별도의 네임스페이스를 만들 수 있다.

컨테이너가 호스트 시스템에서 파일 시스템을 격리하는 방법과 유사하다.

프로세스 격리

루트 환경 내에서 프로세스를 실행한다는 것은 호스트 시스템에서 프로세스가 격리된다는 것을 의미하는데 이는 컨테이너가 격리된 프로세스를 실행하는 방식과 유사하며 독립된 환경을 만들 수 있습니다.

리소스 제어

디스크 공간, 네트워크 연결, CPU 사용량 등 격리된 환경이 엑세스할 수 있는 리소스를 제한할 수 있다.

컨테이너가 리소스 사용을 제어하고 호스트 시스템에 미치는 영향을 제한하는 방식과 유사

보안

루트 환경 내에서 애플리케이션을 실행하면 호스트 시스템으로부터 애플리케이션을 격리하여 보안을 강화할 수 있다.

 

chroot를 사용하여 도커 컨테이너와 유사한 환경을 만드는 연습은 컨테이너의 개념 아키텍처 그리고 클라우드 네이티브 환경에서 애플리케이션을 격리하고 보호하는데 컨테이너를 사용하는 방법을 직접 경험해 볼 수 있는 좋은 방법입니다.

 

실습

필요한 패키지 설치

  debootstrap : 패키지는 최소한의 데비안 기반 시스템을 만드는데 사용하는 패키지.

컨테이너의 루트 파일 시스템으로 사용할 디렉터리를 만듭니다.

생성된 디렉터리에 기본 데비안 시스템을 디부트스트랩을 이용해서 설치합니다.

/var/chroot 디렉토리 안 쪽 파일을 확인해 봅니다.

밑의 사진처럼 나온다면 성공.

chroot 환경으로 들어가 파일 시스템 구조를 확인하고 테스트 파일 하나 생성

  필요한 파일 시스템을 마운트

chroot 환경으로 들어가 컨테이너(격리된 프로세스) 실행

chroot 환경 안에 a.txt 파일을 생성

chroot 환경을 종료하고 생성한 파일을 확인한 뒤 실습 환경 마무리

종료 후 원래 서버에서 /var/chroot 디렉터리 안 쪽에 a.txt 파일이 생성된 것을 확인

확인 및 정리

 

기본 컨테이너와 유사한 환경을 만들지만 실제 도커 컨테이너와 동일하 수준의 격리 및 보안을 제공하지 않는다.