
Docker 레지스트리(포트 5000)를 설정했는데, 이 레지스트리는 https(포트 443)를 통해 Reverse-Proxy(HAproxy)를 통해 인터넷에 액세스할 수 있습니다.
내 역방향 프록시그렇지 않다(다양한 이유로) 포트 80에서 수신 - 443만 사용합니다.
그러나 이미지를 레지스트리로 가져오거나 푸시하려고 하면 다음 오류가 발생합니다.
> docker push dockerreg.mydomain.tld/foo/bar:tag
The push refers to repository [dockerreg.mydomain.tld/foo/bar]
67e5bc702bd3: Layer already exists
1ee6a18298af: Layer already exists
0d8d066a4449: Layer already exists
....
402111a9b517: Layer already exists
5be968ab3b04: Layer already exists
b8d33b7d28fe: Layer already exists
Patch http://dockerreg.mydomain.tld/v2/foo/bar/blobs/uploads/840a9fc2-5c10-4c0e-b674-82f76c3794a3?_state=vcTZPbOrQmhcKwilCyutNGwVpFjvWigJCApZHA834757Ik5hbWUiOiJmb3Rvd2V0dGVyL2NsZWFuIiwiVVVJRCI6Ijg0MGE5ZmMyLTVjMTAtNGMwZS1iNjc0LTgyZjc2YzM3OTRhMyIsIk9mZnNldCI6MCwiU3RhcnRlZEF0IjoiMjAyMS0wOC0xNFQyMTozODo1Mi42MzgxNjY5NTdaIn0%3D:
dial tcp 1.2.3.4:80: i/o timeout
그래서 분명히 http/80을 통해 레지스트리에 액세스하려고 시도합니다.
docker login 명령을 사용할 수 있었지만 https://dockerreg....
docker pull/push 명령은 https://로 실행할 수 없습니다.
내 역방향 프록시의 포트 80에서 https 리디렉션 없이 내 Docker 레지스트리에 액세스할 수 있는 방법이 있습니까?
답변1
http 옵션을 설정해야 합니다 host
.https://docs.docker.com/registry/configuration/#http
외부에서 접근 가능한 레지스트리 주소의 정규화된 URL입니다. 존재하는 경우 생성된 URL을 생성할 때 사용됩니다. 그렇지 않으면 이러한 URL은 클라이언트 요청에서 파생됩니다.
이는 레지스트리에 삽입된 구성 파일에서 설정하거나 환경 변수를 사용하여 설정할 수 있습니다 REGISTRY_HTTP_HOST
.