프록시를 사용하는 docker pull은 "첫 번째 레코드가 TLS 핸드셰이크처럼 보이지 않습니다"를 표시합니다.

프록시를 사용하는 docker pull은 "첫 번째 레코드가 TLS 핸드셰이크처럼 보이지 않습니다"를 표시합니다.

아웃바운드 트래픽에 프록시를 사용해야 하는 회사 서버가 있습니다. Microsoft의 docker 설명서에 따라 Powershell 명령을 실행했습니다.

[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://my.secret.proxy.net:8888", [EnvironmentVariableTarget]::Machine)
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "https://my.secret.proxy.net:8888", [EnvironmentVariableTarget]::Machine)
Restart-Service docker

하지만 docker build그 후에 실행하면 다음이 제공됩니다.

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

http대신 https프록시 주소 등을 사용해 보았습니다 . 동일한 결과입니다. 프록시는 투명한 프록시이며 "스마트"한 작업을 수행하지 않습니다.

실행이 pip install flake8 --proxy=https://my.secret.proxy.net:8888작동하므로 프록시가 작동한다는 것을 알 수 있습니다.

어떤 아이디어가 있나요? 추가 디버깅을 위한 팁이 있나요? 감사해요!

답변1

귀하의 "HTTPS_PROXY", "https://my.secret.proxy.net:8888"변경 사항 https://http://

답변2

현재 버전의 Windows용 Docker에는 다음이 있습니다.자원 -> 프록시이미지를 가져오는 데 사용할 프록시를 구성하는 UI 섹션입니다.

참조:https://docs.docker.com/config/daemon/systemd/#httphttps-proxy

실행 중인 컨테이너에서는 여전히 프록시 변수를 구성해야 합니다. 이를 위해 다음을 ~/.docker/config.json사용하여 업데이트할 수 있습니다.

{
 "proxies":
 {
   "default":
   {
     "httpProxy": "http://192.168.1.12:3128",
     "httpsProxy": "http://192.168.1.12:3128",
     "noProxy": "*.test.example.com,.example2.com,127.0.0.0/8"
   }
 }
}

특히 WSL2를 사용하지 않는 경우 Windows에서 이 파일이 어디에 있는지 확실하지 않지만 docker login레지스트리에 로그인한 경우 파일이 이미 존재해야 합니다.

참조:https://docs.docker.com/network/proxy/

관련 정보