본문 바로가기
반응형

리눅스/Part1. Ch03. 나만의 컨테이너 환경 만들기7

06. (실습) 나만의 컨테이너 생성 - namespace_1 요구사항: - 호스트명 변경, 프로세스 ID 변경, 프로세스 리스트 정보 변경 1단계: "run" 명령어 전달 시 run 함수 실행 2단계: 새로운 프로세스에서 명령어 실행 3단계: 새로운 UTS 설정 추가 → hostname 변경 4단계: 컨테이너 환경 시작 시 호스트명을 container로 변경 5단계: 컨테이너 환경에서 ps명령 실행 시 제한된 프로세스 정보만 조회. 루트 파일 시스템 변경 호스트명 - UTS namespace 프로세스 ID - PID namespace 프로세스 리스트 정보 - Mount namespace step1은 명령어 종류에 따른 함수 실행으로 run 명령어를 전달 시 run 함수가 실행되고 그 외는 전부 종료시킨다. run 함수는 전달 받은 모든 Argument를 출력시킨다.. 2022. 12. 6.
07. (실습) 나만의 컨테이너 생성 - cgroup 요구사항: Process 갯수 제한 컨테이너 내 process 갯수 제한 → fork bomb :(){ :|:& };: 기존 실습에서 추가된 내용은 cg() 함수이다. 먼저 go run . run /bin/bash 명령어로 컨테이너 환경을 만들어서 들어가고 :(){ :|:& };: 명령어를 입력하고 새 터미널에서 ps auxf와 cat pids.current 명령어로 프로세스 정보를 보면 프로세스가 최대 20개가 될 때까지 fork된걸 볼 수 있다. 2022. 6. 27.
05. (실습) 나만의 컨테이너 생성 - 소개 이번 시간에는 도커 컨테이너의 최소한의 기능인 Namespace와 Cgroups를 이용하여 나만의 컨테이너 환경을 만들어보자 기능: 독립된 환경에서 쉘 명령어 실행 2022. 6. 27.
04. 실습에 필요한 go 문법 먼저 mkdir -p ~/projects/box 명령어로 디렉토리를 만들고 cd로 들어가자 그리고 go mod init example/box 명령어로 프로젝트를 초기화하고 go 모듈을 생성한다. 이제부터 main.goo 파일을 작성해보자 1. 가장 처음에 해야할 것은 package main을 선언해야 한다. 2. 실습에 필요한 fmt패키지를 import 한다. 3. 함수 선언은 func 키워드로 한다. 이를 이용해서 main함수를 선언한다. 4. go 파일을 실행할 때는 go run [파일명] 명령어를 입력하면 된다. 다음으로 외부 패키지를 포함한 코드 실행 실습을 해보자 1. package main을 선언을 하고 fmt와 외부패키지를 선언한다. 2. 현재 rsc.io/quote라는 패키지가 없기 때문에.. 2022. 6. 27.
반응형