Không thể kết nối với chocolatey.org hoặc bất kỳ trang web internet nào khác từ trong container


11

xpost từ https://forums.docker.com/t/cannot-connect-to-chocolatey-org/38745

Hành vi dự kiến

Tôi đang chạy Trung tâm dữ liệu Windows Server 2016 (tải xuống MSDN) 64 bit - Phiên bản 1607 - Bản dựng 14393.1715

Tôi đang sử dụng Docker cho Windows và chạy Windows Container.

Tôi nghĩ rằng đây là điều dễ nhất trên thế giới, để làm điều này:

reboot my host machine
docker run -it microsoft/windowsservercore
powershell
iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'));

Kỳ vọng là để cài đặt chocolatey trong container.

Tôi thực sự sẽ làm điều này trong một dockerfile, nhưng tôi sẽ lấy ví dụ làm việc tối thiểu để được giúp đỡ ngay bây giờ.

Đây là một tập tin docker thực tế không thành công (đáng buồn là nó không sáng tạo)

FROM microsoft/windowsservercore

SHELL ["Powershell"]

ENV ChocolateyUseWindowsCompression false;
RUN iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'));

Hành vi thực tế

Điều đầu tiên trước tiên: Tôi đang chạy cái này trong Virtualbox VM. Mọi thứ khác mà tôi muốn làm việc đều hoạt động, bao gồm nhưng không giới hạn ở: kiểm tra và kết nối mạng nội bộ, máy chủ sql đang chạy, dịch vụ WCF chạy với môi trường soạn thảo docker của tôi, dữ liệu trở lại chính xác. Tất cả những điều tôi mong đợi hệ thống sẽ làm việc. Đây là bước cuối cùng, ngón tay đan chéo: D. Thực tế là tôi đang chạy cái này trong VirtualBox không quan trọng, vì Hyper-V đang hoạt động và tất cả các máy của tôi đều hoạt động như mong đợi. Tôi chỉ hình dung nó đáng được đề cập.

docker run -it microsoft/windowsservercore
powershell
PS C:\> iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
Exception calling "DownloadString" with "1" argument(s): "The remote name could not be resolved: 'chocolatey.org'"
At line:1 char:1
+ iex ((new-object net.webclient).DownloadString('https://chocolatey.or ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : WebException

PS C:\> ipconfig /all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : 339189e8dd56
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No
   DNS Suffix Search List. . . . . . : attlocal.net

Ethernet adapter vEthernet (Container NIC 6412b757):

   Connection-specific DNS Suffix  . : attlocal.net
   Description . . . . . . . . . . . : Hyper-V Virtual Ethernet Adapter #4
   Physical Address. . . . . . . . . : 00-15-5D-80-E9-2C
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::a51b:820e:e45d:fab6%29(Preferred)
   IPv4 Address. . . . . . . . . . . : 172.22.202.147(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.240.0
   Default Gateway . . . . . . . . . : 172.22.192.1
   DNS Servers . . . . . . . . . . . : 172.22.192.1
                                       10.0.2.2
   NetBIOS over Tcpip. . . . . . . . : Disabled

Từ hệ điều hành máy chủ của tôi (Máy chủ 2016) tôi có thông tin này:

PS C:\docker> ipconfig /all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : WIN-CDPNLUMSTOE
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No
   DNS Suffix Search List. . . . . . : attlocal.net

Ethernet adapter vEthernet (HNS Internal NIC) 2:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Hyper-V Virtual Ethernet Adapter #2
   Physical Address. . . . . . . . . : 00-15-5D-80-E5-17
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::5939:52e7:aaf3:5b70%9(Preferred)
   IPv4 Address. . . . . . . . . . . : 172.22.192.1(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.240.0
   Default Gateway . . . . . . . . . :
   DHCPv6 IAID . . . . . . . . . . . : 301995357
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-21-4E-0C-48-08-00-27-51-5F-6A
   DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%1
                                       fec0:0:0:ffff::2%1
                                       fec0:0:0:ffff::3%1
   NetBIOS over Tcpip. . . . . . . . : Enabled

Ethernet adapter vEthernet (HNS Internal NIC) 3:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Hyper-V Virtual Ethernet Adapter #3
   Physical Address. . . . . . . . . : 00-15-5D-B6-45-8D
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::1de4:bff7:36fb:ee92%13(Preferred)
   IPv4 Address. . . . . . . . . . . : 172.23.128.1(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.240.0
   Default Gateway . . . . . . . . . :
   DHCPv6 IAID . . . . . . . . . . . : 570430813
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-21-4E-0C-48-08-00-27-51-5F-6A
   DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%1
                                       fec0:0:0:ffff::2%1
                                       fec0:0:0:ffff::3%1
   NetBIOS over Tcpip. . . . . . . . : Enabled

Ethernet adapter Ethernet:

   Connection-specific DNS Suffix  . : attlocal.net
   Description . . . . . . . . . . . : Intel(R) PRO/1000 MT Desktop Adapter
   Physical Address. . . . . . . . . : 08-00-27-51-5F-6A
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::10de:923b:b866:221d%4(Preferred)
   IPv4 Address. . . . . . . . . . . : 10.0.2.15(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : Friday, August 19, 1881 6:47:42 PM
   Lease Expires . . . . . . . . . . : Tuesday, September 26, 2017 11:15:59 PM
   Default Gateway . . . . . . . . . : 10.0.2.2
   DHCP Server . . . . . . . . . . . : 10.0.2.2
   DHCPv6 IAID . . . . . . . . . . . : 50855975
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-21-4E-0C-48-08-00-27-51-5F-6A
   DNS Servers . . . . . . . . . . . : 10.0.2.2
   NetBIOS over Tcpip. . . . . . . . : Enabled

Tunnel adapter isatap.{C420BD56-5715-49BF-9382-5EA99AA48563}:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Microsoft ISATAP Adapter #5
   Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes

Tunnel adapter isatap.{70EA4F39-FE0F-4040-B718-ACAC00765808}:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Microsoft ISATAP Adapter #6
   Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes

Tunnel adapter isatap.attlocal.net:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . : attlocal.net
   Description . . . . . . . . . . . : Microsoft ISATAP Adapter #7
   Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes
PS C:\docker>

Thông tin

Đầu ra DockerDebugInfo.ps1: https://gist.github.com/jcolebrand/170673e45bf8a659552f22f2071c30d6

Thông tin hệ thống

Chạy Windows Server Datacenter (tải xuống MSDN) 64 bit - Phiên bản 1607 - Bản dựng 14393.1715

PS C:\docker> docker version
Client:
 Version:      17.06.2-ce
 API version:  1.30
 Go version:   go1.8.3
 Git commit:   cec0b72
 Built:        Tue Sep  5 19:57:19 2017
 OS/Arch:      windows/amd64

Server:
 Version:      17.06.2-ce
 API version:  1.30 (minimum version 1.24)
 Go version:   go1.8.3
 Git commit:   cec0b72
 Built:        Tue Sep  5 19:59:47 2017
 OS/Arch:      windows/amd64
 Experimental: true

Nếu, vì bất kỳ lý do nào bị từ bỏ, điều này rất quan trọng, hệ điều hành máy chủ cần phải được kích hoạt. Tôi đang làm điều này trong môi trường phát triển một lần nên không đặc biệt lo lắng về việc kích hoạt VM. Tôi không thể hiểu làm thế nào điều này là quan trọng. Đặc biệt là vì mọi thứ khác "chỉ hoạt động".


Có vẻ như có một vấn đề tương tự được đăng ở đây github.com/docker/for-win/issues/427 Hãy thử dừng và bắt đầu dịch vụ docker.
PrestonM

1
Cảm ơn @PrestonM tôi đã làm điều đó nhiều lần. Và khởi động lại máy tính. Và get-netnat | remove-netnat
jcolebrand

chạy Stop-Service docker; Get-ContainerNetwork | Remove-ContainerNetwork -Force; Start-Service dockertrình bày một vài vấn đề. không tìm thấy dịch vụ nào với tên docker. không tìm thấy mạng container nào với Get-ContainerNetwork
jcolebrand

Bạn đang chạy lệnh từ đâu? Virtualbox, hay Windows Server?
PrestonM

1
@PrestonM Một chút bối rối. Hãy để tôi tóm tắt lại thiết lập của mình: Máy chủ OSX -> VirtualBox -> Windows Server 2016 -> Docker cho Windows -> container. Tất cả các ngăn xếp đều chạy trên các lớp Hyper-V và tôi có thể làm mọi thứ khác mà tôi yêu cầu trên các thùng chứa của mình, bao gồm giao tiếp mạng nội bộ giữa các ứng dụng và một cá thể cơ sở dữ liệu cục bộ (microsoft / mssql-server-windows-developer) để mọi thứ tôi muốn làm là tốt Các lệnh đang được ban hành trong một thuật ngữ quyền hạn trên container. Server2016 có thể truy cập internet tốt.
jcolebrand

Câu trả lời:


5

Vấn đề dường như là các hình ảnh Windows cấu hình DNS trước tiên là cổng mặc định của giao diện NAT và sau đó là DNS của máy chủ. Tra cứu DNS thất bại trước trình phân giải đầu tiên và truy cập bên ngoài.

Việc thêm --dns 8.8.8.8(hoặc trình giải quyết cục bộ của bạn) vào CLI dường như giải quyết được vấn đề.


Thật tuyệt vời. Ai có thể có được điều này trên một hồ sơ tồn đọng để giải quyết? : D
jcolebrand

@jcolebrand Xin chào, tôi cũng đang đối mặt với vấn đề tương tự. Tôi có cấu hình proxy công ty. Chúng ta cần thêm cấu hình dns đó ở đâu? Trong daemon.json?
dùng2301

Bạn đã thử lệnh như được chỉ ra trong câu trả lời này?
jcolebrand

@jcolebrand Đã thử với docker build --dns 8.8.8.8 -t choco .không hoạt động. Sau đó, tôi đã thêm "dns": ["8.8.8.8"]vào daemon.json không hoạt động.
dùng2301

1
Tôi nghĩ cờ dns đã chạy không phải lúc xây dựng?
jcolebrand

2

Vì các bình luận là nhất thời, đây là một số thông tin cho người tiếp theo đang cố gắng giải quyết vấn đề này. Vui lòng chỉnh sửa câu trả lời này để cung cấp thêm chi tiết, trừ khi bạn là Docker cho Windows pro, trong trường hợp này, vui lòng đưa ra câu trả lời tốt hơn: D

Tôi đã đi thử vấn đề cho nhóm CNTT của mình sau khi đã thay đổi NIC trên máy ảo của mình thành cầu nối và thêm bộ điều hợp thunderbolt của tôi. Khi có các hệ thống bảo mật, tôi nhận ra rằng tôi cần thêm phần mềm bảo mật vào máy ảo của mình, nhưng vì nó không được kết nối với miền, đó là một vấn đề. Chuyển nó trở lại NAT trên bộ điều hợp wifi và sau đó sẽ trình diễn vấn đề trong máy ảo Windows 2016 của tôi bằng cách nào đó đã khiến nó bắt đầu hoạt động.

Cùng một mạng. Cấu hình VM giống nhau. Cùng một phần mềm và máy chủ lưu trữ, không có thay đổi đối với bất cứ điều gì tôi có thể theo dõi.

Đã kiểm tra Get-ContainerNetwork hoặc Get-WinNat không cho thấy gì, tôi thực sự đã ở cuối chẩn đoán. Thay đổi bộ điều hợp NIC và sau đó thay đổi lại rõ ràng đã gây ra một cái gì đó để thiết lập lại. Thời gian tốt.

Vì vậy, tôi không có câu trả lời chắc chắn, nhưng tôi có một cách giải quyết tốt cho người tiếp theo bị mắc kẹt trong đôi giày của tôi, trong đó, với hồ sơ theo dõi các câu hỏi và câu trả lời của StackExchange, sẽ là tôi. Nhưng tôi hy vọng nó cũng giúp bạn ra ngoài, người hỏi ngẫu nhiên trên internet.


Và thuế XKCD, cho những người không thể giải quyết vấn đề.

Liên kết truyện tranh XKCD đến "Trí tuệ của người xưa"


1
Theo mô tả này, tôi mong muốn đặt một hóa đơn cho bộ đệm DNS được xóa bằng cách tắt / không tắt ngăn xếp mạng vì Windows cũng có ý tưởng loại này để lưu trữ yêu cầu tiêu cực. Nếu điều đó xảy ra một lần nữa, có thể đáng để thử ipconfig /flushdnstrên máy chủ windows
Tensibai

Nói thêm, máy chủ trong trường hợp này là OSX, nếu bạn muốn nói hệ điều hành cơ sở lưu trữ mọi thứ. Nếu bạn có nghĩa là nơi tôi đang chạy container docker, thì đó là các cửa sổ.
jcolebrand

Ý tôi là máy chủ lưu trữ windows, tôi không nhớ * nix dựa trên mạng ngăn xếp các truy vấn tiêu cực
Tensibai

1

Tại một dấu nhắc lệnh chạy ipconfig /allvà tìm kiếm một DNS Serversdòng trong đầu ra với một cái gì đó trông giống như một địa chỉ IP. Đó là (các) máy chủ DNS của máy chủ của bạn.

Chỉnh sửa C:\ProgramData\Docker\config\daemon.jsonvà thêm một dnsmục với địa chỉ IP đó. Ví dụ: nếu Máy chủ DNS của bạn là 192.10.0.2 và 8.8.8.8 là DNS của Google làm bản sao lưu:

{
    "dns": ["192.10.0.2", "8.8.8.8"]
}

Bây giờ khởi động lại Docker Desktop và các URL từ xa có thể được giải quyết bằng Docker, khi xây dựng hoặc thời gian chạy.

Giải pháp này đến từ Faithful Anere tại https://medium.com/@faithfulanere/solve-docker-build-could-not-resolve-archive-ubfox-com-apt-get-fails-to-install-anything-9ea4dfdcdcf2


-1

Hãy thử hướng dẫn cài đặt từ https://chocolatey.org/install#completely-offline-install (phần "Cài đặt đằng sau proxy"):

    @powershell -NoProfile -ExecutionPolicy Bypass -Command "[System.Net.WebRequest]::DefaultWebProxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin

1
Bạn đang trả lời một câu hỏi khác nhau ở đây, câu hỏi là tại sao container không thể giải quyết các địa chỉ internet
Tensibai
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.