개발자로 후회없는 삶 살기
루트 파일 시스템 PART.chroot 본문
서론
- 가상머신과 컨테이너의 차이
-> 가상머신 :
OS위에서 하드웨어 자원을 SW형식으로 돌립니다. 다시 그 위에 프로세스를 실행합니다.
-> 컨테이너 :
OS 위에 하드웨어를 올리지 않습니다.. 독립된 환경에서 프로세스를 실행합니다.
> 호스트 OS의 컨테이너 : 가상머신 위의 새로운 OS위에 올린 프로세스가 아니고 호스트 OS위에서 실행되는 다른 일반 프로세스 ( ex) 오피스, 검색 등등 ) 와 같은 계층입니다.
- 컨테이너의 구현
컨테이너를 구현하기 위해서 가장 기본이 되는 일이 실행되는 루트를 변경하는 일이 필요합니다!
+ 기존의 프로세스들이 실행되는 루트는 그래로 두고 격리된 다른 루트를 만들어 컨테이너를 다른 루트에 격리시켜서 실행하겠다는 의미입니다.
본론
- chroot
40년 된 기술로 내부에 엄청나게 많은 시스템 call로 구현되어있고, 루트를 변경하는 커널모드 명령어입니다.
-> chroot 명령어 존재 여부 확인
- 초기 설정
1. 명령어 사용법
chroot [옵션] 새로운 루트 디렉터리 실행할 명령어
ex) chroot /home/hsb/new_root /bin/bash -> 도커에서 다운 받은 이미지를 컨테이너로 올리면서 동시에 실행하는 run 명령어와 비슷합니다.
2. 초기설정
1) 새로운 루트 dir 생성
2) 후에 chroot 명령어 실행
3) 오류
4) 해결
-> 초기 설정의 원인을 알기 위한 chroot의 동작 원리
결론
1. 루트로 변경하는 것 : 모든 요소는 루트 아래 존재합니다.
2. 프로세스를 실행할 때 루트를 기준으로 다른 파일들을 탐색 ex) 프로세스 R을 실행하는 경우 : /A/E로 E파일에 접근합니다. -> 루트로 표현하는 파일 시스템!
3. 새로 지정된 루트dir에 사용할 명령어의 lib들이 다 있어야 합니다.
'[Infra] > [도커]' 카테고리의 다른 글
도커 PART.도커 기반 서비스 개발 (0) | 2023.01.29 |
---|---|
도커 PART.docker-compose (0) | 2023.01.29 |
도커 PART.도커 life cycle (0) | 2023.01.26 |
도커 PART.iptables (0) | 2022.05.28 |
루트 파일 시스템 RART.환경변수 (0) | 2022.05.10 |
Comments