LabHub

컨테이너 내부 원리 · OCI 이미지 포맷 · 퀴즈

퀴즈: OCI 이미지 포맷

LabHub 에서 이어서 보기

문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. 매니페스트의 `layers[].digest` 와 config 의 `rootfs.diff_ids` 의 관계로 옳은 것은?

    1. 두 값은 언제나 완전히 같은 해시이고 매니페스트와 config 의 표기 방식만 다를 뿐이다
    2. digest 는 tar+gzip 압축본의 해시(내려받는 것), diff_id 는 압축을 푼 tar 의 해시(쌓는 것)로 서로 다르다
    3. diff_id 는 레이어 순서를 나타내는 정수다
    4. digest 는 태그 이름의 해시다
  2. OCI 이미지의 세 겹 구조를 위에서부터 올바르게 나열한 것은?

    1. Image Config → Image Manifest → Image Index
    2. Image Manifest → Image Index → Image Config
    3. Image Index → Image Manifest → Image Config
    4. Image Index → Image Config → Image Manifest
  3. 이미지를 도커 스키마에서 OCI 포맷으로 변환했더니 다이제스트 고정 pull 과 서명 검증이 깨졌습니다. 이유는?

    1. 매니페스트의 바이트가 바뀌면 그 해시인 다이제스트도 바뀌기 때문
    2. 변환 과정에서 레이어 내용이 손상되기 때문
    3. OCI 포맷은 서명을 지원하지 않기 때문
    4. 변환 시 태그가 자동으로 latest 로 바뀌기 때문
  4. 레지스트리를 여러 대로 클러스터링할 때 결국 어려운 문제가 태그 갱신 직렬화로 수렴하는 이유는?

    1. 태그 문자열이 다이제스트보다 길어 네트워크 부하가 크기 때문
    2. 태그는 사람이 붙이는 가변 포인터라서 어떤 다이제스트를 가리키는지가 곧 공유 상태이기 때문
    3. 다이제스트가 노드마다 다르게 계산되기 때문
    4. 태그는 압축되지 않기 때문
  5. ubuntu:22.04 에 node 를 올린 같은 베이스를 쓰는 이미지 10개를 레지스트리에 올렸습니다. 저장되는 양에 가장 가까운 설명은?

    1. 베이스 10배 + 앱 레이어 10배
    2. 베이스 1배 + 앱 레이어 1배
    3. 이미지마다 전체를 새로 저장하므로 10배
    4. 베이스 1배 + 앱 레이어 10배
  6. 운영 배포 매니페스트에서 이미지를 태그가 아니라 다이제스트로 고정하는 가장 본질적인 이유는?

    1. 다이제스트로 받으면 태그로 받을 때보다 pull 속도가 빠르기 때문
    2. 태그는 레지스트리 용량을 더 쓰기 때문
    3. 다이제스트는 내용의 해시라 같은 참조가 항상 같은 내용을 보장하지만, 태그는 언제든 다른 다이제스트를 가리키도록 바뀔 수 있기 때문
    4. 다이제스트를 쓰면 이미지 스캔이 자동으로 수행되기 때문