Docker는 프록시 서버 뒤에서 이미지를 가져올 수 없습니다.

Docker는 프록시 서버 뒤에서 이미지를 가져올 수 없습니다.

CentOS Linux 7에서 docker 버전 20.10.14를 사용하고 있습니다. 방금 docker를 설치하고 /usr/lib/systemd/system/docker.service에서 프록시 설정을 지정했는데 프록시 설정은 다음과 같습니다.

Environment="HTTP_PROXY=http://10.330.100.100:3128/"
Environment="HTTPS_PROXY=https://10.330.100.100:3128/"
Environment=no_proxy=localhost,127.0.0.1

다음과 같은 오류가 발생합니다

Error response from daemon: Get "https://registry-1.docker.io/v2/": proxyconnect tcp: tls: first record does not look like a TLS handshake

https -> http에서 HTTPS_PROXY를 변경할 때 나는

Error response from daemon: Get "https://registry-1.docker.io/v2/": Bad Request

그리고 "https://registry-1.docker.io/v2/"를 말리려고 하면

curl: (56) Received HTTP code 400 from proxy after CONNECT

답변1

Environment="HTTP_PROXY=http://10.330.100.100:3128/"
Environment="HTTPS_PROXY=https://10.330.100.100:3128/"
                             ^                  ^^^^

여기에서는 일반 HTTP 및 HTTPS를 통해 사용할 수 있도록 프록시 서버를 구성합니다.같은 포트에. 그럴 가능성은 거의 없습니다.

프록시 서버가 자체 TLS 인증서로 구성되어 있으며 http 및 https에 대해 다른 포트에서 수신 대기합니다.

또는 일반적으로 프록시 서버는 일반 http 연결만 지원하며 HTTPS 리소스에 대한 요청은 프록시 서버에 연결하려면 여전히 일반 HTTP를 사용해야 합니다. (프록시에 연결되면 클라이언트는 CONNECT 메소드를 사용하여 프록시를 통해 엔드투엔드 암호화 채널을 생성하는 웹 서버에 대한 TLS 연결을 설정합니다.)

즉, HTTPS_PROXY 변수를 다음과 같이 변경해야 할 수도 있습니다.

Environment="HTTPS_PROXY=http://10.330.100.100:3128/"

프록시를 사용해야 하는 경우 TLS 트래픽도 제어되는 경우가 많습니다. 조직의 CA 인증서를 설치하고 활성화해야 할 수도 있습니다.


프록시를 사용해야 한다는 것은 조직의 다른 사람들도 같은 작업을 수행해야 함을 의미합니다.

이는 귀하(또는 프록시 서버)가 매우 빠르게 도커 속도 제한에 직면하게 된다는 것을 의미합니다. 다음을 참조하세요.https://docs.docker.com/docker-hub/download-rate-limit/

관련 정보