컨테이너 내부 원리 · /proc 에서 본 컨테이너 · 퀴즈
퀴즈: /proc 에서 본 컨테이너
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
`/proc/PID/ns/net` 심볼릭 링크의 대괄호 안 숫자가 뜻하는 것은?
- 컨테이너의 짧은 ID 값
- 프로세스의 스케줄링 우선순위
- 네임스페이스 아이노드 번호 — 같으면 같은 네임스페이스
- 할당된 네트워크 인터페이스 번호
호스트에서 낯선 프로세스가 어느 컨테이너의 것인지 가장 빠르게 알아내려면?
- `/proc/PID/cmdline` 을 본다
- `/proc/PID/cgroup` 경로에 포함된 컨테이너 ID 를 본다
- `/proc/PID/environ` 을 본다
- `docker ps` 를 전부 훑는다
`/proc/PID/mountinfo` 의 overlay 항목에서 `lowerdir` 목록이 뜻하는 것은?
- 이미지의 읽기 전용 레이어들
- 볼륨 마운트 목록
- 컨테이너의 쓰기 레이어
- 임시 파일시스템
`/proc/PID/status` 의 `CapEff` 가 `0000000000000000` 이면?
- root 로 실행 중이다
- seccomp 가 꺼져 있다
- 실효 capability 가 하나도 없다
- 네임스페이스가 없다
`docker stats` 는 여유가 있어 보이는데 OOMKilled 가 났다. 무엇을 확인하는 게 정확한가?
- 이미지의 전체 크기와 레이어 개수, 그리고 베이스 이미지 종류
- 컨테이너에 걸려 있는 재시작 정책과 종료 이력
- cgroup 의 `memory.max` 와 `memory.peak`/`memory.current`
- 컨테이너가 쓰는 네트워크 대역폭
`NoNewPrivs: 1` 이 걸린 프로세스에서 일어나는 일은?
- 파일시스템에 아무것도 쓸 수 없다
- 네트워크로 나가는 통신을 할 수 없다
- fork 나 clone 으로 자식 프로세스를 만들 수 없다
- 이후 execve 에서 setuid 비트나 파일 capability 로 특권을 얻을 수 없다