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

Linux 호스트에서 Docker를 사용하여, 호스트와는 다른 배포판을 바탕으로 한 이미지로 컨테이너를 시작하고, 그 안에서 uname -r(커널의 릴리스를 표시하는 명령)과 cat /etc/os-release(배포판 정보를 표시하는 명령)를 실행했다. 결과의 설명으로 올바른 것은?

  1. Auname -r도 /etc/os-release도 호스트의 커널과 배포판의 정보를 표시한다
  2. Buname -r도 /etc/os-release도 이미지의 바탕이 된 배포판과 그 커널의 정보를 표시한다
  3. Cuname -r은 호스트의 커널을, /etc/os-release는 이미지의 배포판을 표시한다
정답과 해설 보기

정답: C. uname -r은 호스트의 커널을, /etc/os-release는 이미지의 배포판을 표시한다

컨테이너는 호스트의 커널을 공유하므로, 커널에 문의하는 uname -r은 컨테이너 안에서도 호스트 커널의 릴리스를 표시합니다. 한편 /etc/os-release는 파일이므로 컨테이너에서 보이는 파일 시스템, 즉 이미지에 포함된 것이 읽히고, 이미지의 배포판 이름이 표시됩니다. 이미지에는 커널이 포함되지 않으며, 명령이나 라이브러리 등 사용자 공간의 파일만 들어 있습니다. 그래서 호스트의 커널에 없는 기능을 전제로 한 프로그램은 컨테이너 안에서도 동작하지 않습니다.

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

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

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