클라우드와 컨테이너의 기초

Linux의 컨테이너를 실현하는 커널 기능 중 네임스페이스(namespaces)와 cgroups(컨트롤 그룹)의 역할의 조합으로 올바른 것은?

  1. A네임스페이스: 프로세스에서 보이는 것(프로세스 ID, 네트워크, 마운트 등)을 나눈다, cgroups: CPU나 메모리 등 자원의 사용량을 제한·측정한다
  2. B네임스페이스: CPU나 메모리 등 자원의 사용량을 제한·측정한다, cgroups: 프로세스에서 보이는 것(프로세스 ID, 네트워크, 마운트 등)을 나눈다
  3. C네임스페이스: 컨테이너마다 별도의 커널을 부팅하여 서로를 격리한다, cgroups: 컨테이너마다 가상의 CPU를 만들어 하드웨어를 모방한다
정답과 해설 보기

정답: A. 네임스페이스: 프로세스에서 보이는 것(프로세스 ID, 네트워크, 마운트 등)을 나눈다, cgroups: CPU나 메모리 등 자원의 사용량을 제한·측정한다

컨테이너는 호스트의 커널 위에서 동작하는 보통의 프로세스에 두 가지 구조로 격리를 적용한 것입니다. 네임스페이스는 프로세스 ID, 네트워크, 마운트(파일 시스템이 보이는 방식), 호스트 이름 등을 그룹별로 나누어, 컨테이너 안의 프로세스에는 자기 몫만 보이게 합니다. cgroups는 프로세스 그룹이 사용할 수 있는 CPU 시간이나 메모리의 양을 제한하고 사용량을 측정합니다. 둘 다 커널의 기능이므로 컨테이너는 별도의 커널을 부팅하지 않으며, 하드웨어를 모방하지도 않습니다.

이 분야 연습하기 분야로 돌아가기

클라우드와 컨테이너의 기초의 다른 문제

  1. Linux 호스트에서 Docker를 사용하여, 호스트와는 다른 배포판을 바탕으로 한 이미지로 컨테이너를 시작하고, 그 안에서 uname -r(커널의 릴리스를 표시하는 명령)과 cat /etc/os-release(배포판 정보를 표시하는 명령)를 실행했다. 결과의 설명으로 올바른 것은?
  2. 컨테이너 이미지와 컨테이너의 관계에 대한 설명으로 올바른 것은?
  3. 어떤 이미지로 시작한 컨테이너 안에서, 이미지에 포함된 설정 파일 /etc/app.conf를 수정했다. Docker의 일반적인 스토리지 구조(overlay2 등)에서 일어나는 일로 올바른 것은?
  4. 500 MB의 아카이브 data.tar.gz를 풀기 위해 위의 Dockerfile로 이미지를 만들었다. 압축을 푼 뒤 같은 RUN 안에서 아카이브를 삭제했는데도, 이미지 크기는 아카이브만큼 큰 채로였다. 이유와 대책의 조합으로 가장 적절한 것은?
  5. 같은 베이스 이미지(120 MB) 위에 각각 고유한 레이어를 30 MB씩 겹친 5개의 이미지가 있다. 레이어의 압축이나 메타데이터의 용량은 생각하지 않는다. 서버 1대에 이 5개의 이미지를 모두 가져왔을(pull) 때, 이미지가 사용하는 디스크 용량으로 올바른 것은?