컨테이너 레지스트리 트러블슈팅
GitLab 컨테이너 레지스트리의 일반적인 문제를 트러블슈팅합니다. x509 인증서 오류, 토큰 서명 오류, S3 푸시 오류, 디버그 서버, Prometheus 메트릭 등 다양한 문제 해결 방법을 설명합니다.
특정 문제를 조사하기 전에 다음 트러블슈팅 단계를 시도해 보세요: Docker 클라이언트와 GitLab 서버의 시스템 시계가 동기화되어 있는지 확인합니다(예: NTP를 통해). S3 기반 레지스트리의 경우 IAM 권한과 S3 자격 증명(지역 포함)이 올바른지 확인합니다. 자세한 내용은 샘플 IAM 정책 을 참조하세요. 레지스트리 로그(예: /var/log/gitlab/registry/current )와 GitLab 프로덕션 로그(예: /var/log/gitlab/gitlab-rails/production.log )에서 오류를 확인합니다. 컨테이너 레지스트리의 NGINX 구성 파일(예: /var/opt/gitlab/nginx/conf/gitlab-registry.conf )을 검토하여 어떤 포트가 요청을 수신하는지 확인합니다. 요청이 컨테이너 레지스트리로 올바르게 전달되는지 확인합니다: curl --verbose --noproxy "*" https://<hostname>:<port>/v2/_catalog 응답에는 service="container_registry" 를 포함하는 Www-Authenticate: Bearer 줄이 있어야 합니다. 예를 들어: < HTTP/1.1 401 Unauthorized < Server: nginx < Date: Fri, 07 Mar 2025 08:24:43 GMT < Content-Type: application/json < Content-Length: 162 < Connection: keep-alive < Docker-Distribution-Api-Version: registry/2.0 < Www-Authenticate: Bearer realm="https://<hostname>/jwt/auth",service="container_registry",scope="registry:catalog:*" < X-Content-Type-Options: nosniff < {"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail": [{"Type":"registry","Class":"","Name":"catalog","ProjectPath":"","Action":"*"}]}]} * Connection #0 to host <hostname> left intact 오류: ... x509: certificate signed by unknown authority # 컨테이너 레지스트리에 자체 서명 인증서를 사용할 때 CI/CD 파이프라인 작업에서 다음과 유사한 오류가 발생할 수 있습니다: Error response from daemon: Get registry.example.com/v1/users/: x509: certificate signed by unknown authority 이 오류는 명령을 실행하는 Docker
