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

컨테이너 이미지와 컨테이너의 관계에 대한 설명으로 올바른 것은?

  1. A컨테이너를 정지하면 컨테이너 안에서 변경한 내용이 자동으로 이미지에 다시 기록되어 원래 이미지를 덮어쓴다
  2. B이미지는 읽기 전용 템플릿이며, 하나의 이미지로부터 각각 쓰기 가능한 레이어를 가진 여러 컨테이너를 시작할 수 있다
  3. C하나의 이미지로부터 동시에 시작할 수 있는 컨테이너는 하나뿐이며, 두 번째를 시작하려면 이미지를 다른 이름으로 복제해 두어야 한다
정답과 해설 보기

정답: B. 이미지는 읽기 전용 템플릿이며, 하나의 이미지로부터 각각 쓰기 가능한 레이어를 가진 여러 컨테이너를 시작할 수 있다

이미지는 애플리케이션 실행에 필요한 파일과 설정을 묶은 읽기 전용 템플릿이고, 컨테이너는 이미지로부터 만들어진 실행 단위입니다. 컨테이너를 만들면 이미지의 레이어 위에 그 컨테이너 전용의 쓰기 가능한 레이어가 겹쳐집니다. 따라서 하나의 이미지로부터 다수의 컨테이너를 시작할 수 있고, 각 컨테이너에서의 변경은 다른 컨테이너나 이미지에 영향을 주지 않습니다. 변경을 이미지로 남기고 싶을 때는 Dockerfile을 고쳐 이미지를 다시 만드는 것이 일반적입니다.

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

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

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