아웃바운드 트래픽에 프록시를 사용해야 하는 회사 서버가 있습니다. 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
레지스트리에 로그인한 경우 파일이 이미 존재해야 합니다.