We have an internal docker registry with TLS enabled and I’m trying to upload a manifest list to it by running
docker manifest push.
However, whenever I ran this command, I got the below error indicating that a HTTP request was sent to.a HTTPS port.
docker manifest push localhost:5055/testing/debian_testing:1.0 failed to put manifest localhost:5055/testing/debian_testing:1.0: error parsing HTTP 400 response body: invalid character '<' looking for beginning of value: "<html>\r\n<head><title>400 The plain HTTP request was sent to HTTPS port</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n<center>The plain HTTP request was sent to HTTPS port</center>\r\n<hr><center>nginx/1.19.2</center>\r\n</body>\r\n</html>\r\n"
Interestingly, other docker manifest commands such as create and inspect work correctly by sending HTTPs requests.
As far as I know, docker CLI should always first try HTTPs and then fallback to HTTP. But this seems incorrect with
docker manifest push command.
Am I missing something or is there some workaround for this?
Thank you in advance for any pointers!