Мне нужно подключиться к inte rnet изнутри контейнера.
Первоначально демон Docker не смог подключиться к inte rnet, и я не смог даже запустить:
docker pull hello-world
Я решил эту проблему, указав ручной прокси-сервер в настройках docker рабочего стола GUI в разделе ресурсов После того, как я вручную установил прокси-сервер, я смог вытащить изображение hello-world - так что я знаю этот прокси работает.
Затем я создал тестовый Dockerfile, чтобы проверить, могу ли я получить контейнер для подключения к inte rnet при создании образа, и это Dockerfile:
FROM mcr.microsoft.com/windows/servercore:1903
RUN curl 'www.google.co.za'
и получил следующий результат:
PS C:\Projects\Test> docker build -t test:01 .
Sending build context to Docker daemon 3.906GB
Step 1/2 : FROM mcr.microsoft.com/windows/servercore:1903
---> 66c07b0d3e85
Step 2/2 : RUN curl 'www.google.co.za'
---> Running in 99f79ea70731
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (6) Could not resolve host: 'www.google.co.za'
The command 'cmd /S /C curl 'www.google.co.za'' returned a non-zero code: 6
Как было предложено здесь Я попытался добавить DNS следующим образом:
"dns": ["1.1.1.1"]
, но получил тот же результат, что и выше . Ранее у меня были проблемы в контейнерах Linux, когда я не мог устанавливать пакеты внутри контейнера, и мне пришлось добавить следующее в Dockerfile, который работал:
ENV HTTP_PROXY http://myproxy:3128
ENV http_proxy http://myproxy:3128
Я пробовал сделать это в своем тесте Dockerfile, и я получаю этот результат (обратите внимание, что это результат без настроек DNS):
PS C:\Projects\Test> docker build -t test:01 .
Sending build context to Docker daemon 3.906GB
Step 1/4 : FROM mcr.microsoft.com/windows/servercore:1903
---> 66c07b0d3e85
Step 2/4 : ENV HTTP_PROXY http://myproxy.com:3128
---> Using cache
---> d6bbca2c1984
Step 3/4 : ENV http_proxy http://myproxy.com:3128
---> Using cache
---> a22311c57c8d
Step 4/4 : RUN curl 'www.google.co.za'
---> Running in 3e3be3786b62
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 874 100 874 0 0 874 0 0:00:01 --:--:-- 0:00:01 1189
<HTML><HEAD>
<TITLE>Network Error</TITLE>
</HEAD>
<BODY>
<FONT face="Helvetica">
<big><strong></strong></big><BR>
</FONT>
<blockquote>
<TABLE border=0 cellPadding=1 width="80%">
<TR><TD>
<FONT face="Helvetica">
<big>Network Error (dns_unresolved_hostname)</big>
<BR>
<BR>
</FONT>
</TD></TR>
<TR><TD>
<FONT face="Helvetica">
Your requested host "'www.google.co.za'" could not be resolved by DNS.
</FONT>
</TD></TR>
<TR><TD>
<FONT face="Helvetica">
</FONT>
</TD></TR>
<TR><TD>
<FONT face="Helvetica" SIZE=2>
<BR>
For assistance, contact your network support team.<br><br>Your request was categorized by Blue Coat Web Filter as 'none'. <br>If you wish to question or dispute this result, please click <a href="http://sitereview.bluecoat.com/sitereview.jsp?referrer=136&url=http://'www.google.co.za'/">here</a>.
</FONT>
</TD></TR>
</TABLE>
</blockquote>
</FONT>
</BODY></HTML>
Removing intermediate container 3e3be3786b62
---> 79dcdbf32644
Successfully built 79dcdbf32644
Successfully tagged test:01
Если я добавлю настройки DNS обратно в docker GUI, я получу следующий результат:
PS C:\Projects\Test> docker build -t test:01 .
Sending build context to Docker daemon 3.906GB
Step 1/4 : FROM mcr.microsoft.com/windows/servercore:1903
---> 66c07b0d3e85
Step 2/4 : ENV HTTP_PROXY http://myproxy.com:3128
---> Running in 4ac3e6e23b5f
Removing intermediate container 4ac3e6e23b5f
---> 6bfbb6923789
Step 3/4 : ENV http_proxy http://myproxy.com:3128
---> Running in 7e7b08cef7b3
Removing intermediate container 7e7b08cef7b3
---> 4a827371e6fa
Step 4/4 : RUN curl 'www.google.co.za'
---> Running in 317a2ea37342
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:10 --:--:-- 0curl: (5) Could not resolve proxy: myproxy.com
The command 'cmd /S /C curl 'www.google.co.za'' returned a non-zero code: 5
Таким образом, с настройками DNS он не может разрешить прокси, а без настроек DNS он не может разрешить URL. Не знаю, что дальше делать.