더북(TheBook)

5.6 연습 문제

이번 장의 연습 문제는 문제라기보다는 탐정 수사에 가깝다. 하지만 문제를 해결하고 나면 그럴 만한 가치가 있음을 느낄 수 있을 것이다. 독자 여러분이 할 일은 도커 레지스트리 API v2 명세가 담긴 문서(https://docs.docker.com/registry/spec/api/)를 조사하는 것이다. 여러분은 이 문서에 정의된 REST API를 통해서만 로컬 도커 레지스트리에 접근할 수 있다. (아직은) 도커 명령행만으로는 이미지를 검색할 수도 없고 삭제할 수도 없다.

이번 장 연습 문제의 목표는 gallery/ui 이미지의 모든 태그를 로컬 컴퓨터의 레지스트리에 푸시하는 것이다. 모든 태그가 푸시됐는지 확인한 다음, 삭제하고 삭제가 완료됐는지까지 확인하라.

단일 이미지가 여러 개의 태그를 갖는 것이 이번 연습 문제의 주제이므로 gallery/api, gallery/logs 이미지는 그대로 두어도 좋다. 다음 힌트를 참고하라.

한 번의 image push 명령만으로 모든 태그를 푸시해야 한다.

로컬 컴퓨터의 레지스트리 API 주소는 http://registry.local:5000/v2다.

대상 리포지터리(gallery/ui)의 태그 목록을 먼저 확인하라.

그다음 이미지 매니페스트를 확인하라.

API를 통해 이미지를 삭제하라. 이때 매니페스트를 사용해야 한다.

참조 문서를 참고하라. HEAD 요청에서 꼭 필요한 요청 헤더가 있다.

연습 문제 해답은 깃허브 저장소에서 볼 수 있다. 이번 문제는 해답을 조금 참고해도 좋다. 처음 두어 단계는 쉽게 떠올릴 수 있겠지만, 그 뒤로는 꽤 까다로울 것이다. 해답은 이 책의 깃허브 저장소 ch05/lab/ 폴더에서 볼 수 있다. 해답을 참고하더라도 부끄럽게 여길 필요는 없다.

그럼 행운을 빈다. 참조 문서를 잊지 말고 읽어 보기 바란다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.