
Docker 허브에 연결된 풀스루 레지스트리로 Harbor를 구성하려고 합니다.
이미지에 접두사를 붙여서 이미지를 가져오는 동안문서에 따라, Docker 데몬 매개변수(예: docker.io에서 레이어를 계속 다운로드하는 registry-mirrors
등의 명령)를 사용하여 작동하게 할 수 없습니다 .docker pull mysql
클라이언트 구성
도커 버전: 20.10.8
/etc/docker/daemon.log:
{
"registry-mirrors": ["https://harbor.example.com"]
}
항구 구성
- 하버 v2.3.1
- 다음을 사용하여 설치됨
docker-compose
- 항구 인터페이스에서:
- 레지스트리 \ 새 끝점: "Docker Hub"를 공급자로 사용하여 끝점을 만들었습니다.
- 프로젝트 \ 새 프로젝트: 이름을 로 설정하고
proxy
"프록시 캐시"를 선택하고 위 끝점을 선택했습니다.
테스트 1: 접두사가 포함된 이미지 가져오기:
$ docker pull harbor.example.com/proxy/library/mysql
Using default tag: latest
latest: Pulling from proxy/library/mysql
33847f680f63: Already exists
5cb67864e624: Already exists
1a2b594783f5: Already exists
b30e406dd925: Already exists
48901e306e4c: Already exists
603d2b7147fd: Already exists
802aa684c1c4: Already exists
715d3c143a06: Pull complete
6978e1b7a511: Pull complete
f0d78b0ac1be: Pull complete
35a94d251ed1: Pull complete
36f75719b1a9: Pull complete
Digest: sha256:8b928a5117cf5c2238c7a09cd28c2e801ac98f91c3f8203a8938ae51f14700fd
Status: Downloaded newer image for harbor.example.com/proxy/library/mysql:latest
harbor.example.com/proxy/library/mysql:latest
두 번째 마지막 줄은 이것이 예상대로 내 저장소에서 가져온 것임을 보여줍니다.
테스트 2: 접두사 없이 이미지 가져오기:
$ docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
33847f680f63: Already exists
5cb67864e624: Already exists
1a2b594783f5: Already exists
b30e406dd925: Already exists
48901e306e4c: Already exists
603d2b7147fd: Already exists
802aa684c1c4: Already exists
715d3c143a06: Pull complete
6978e1b7a511: Pull complete
f0d78b0ac1be: Pull complete
35a94d251ed1: Pull complete
36f75719b1a9: Pull complete
Digest: sha256:8b928a5117cf5c2238c7a09cd28c2e801ac98f91c3f8203a8938ae51f14700fd
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
이것은 내 레지스트리에서 가져오는 대신 docker.io에서 가져온 것입니다! 위 명령 다음에 /var/log/syslog에 다음 줄도 표시됩니다.
Aug 11 15:54:57 myhost dockerd[12663]: time="2021-08-11T15:54:57.229516951+02:00" level=info msg="Attempting next endpoint for pull after error: unknown: repository library/mysql not found"
이는 Docker가 내 레지스트리를 먼저 시도했음을 의미하므로 문제는 Docker가 아닌 레지스트리 구성에 있는 것으로 의심됩니다. 아마도 Harbor에서 사용하는 경로 규칙에 있을 것입니다.
수동으로 접두사를 붙일 필요 없이 Harbor 캐시에서 이미지를 가져올 수 있는 사람이 있나요?