コンテナ内からchocolatey.orgやその他のインターネットサイトに接続できない


11

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

予想される行動

Windows Server 2016 Datacenter(MSDNダウンロード)64ビットを実行しています-バージョン1607-ビルド14393.1715

私はDocker For Windowsを使用しており、Windowsコンテナーを実行しています。

これが世界で最も簡単なことだと思います。

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

期待はこれがチョコレートにチョコレートをインストールすることです。

私は実際にこれをdockerfileで行うつもりですが、今すぐヘルプを得るために最小限の作業例を探します。

これは失敗する実際のdockerファイルです(悲しいことにそれほど創造的ではありません)。

FROM microsoft/windowsservercore

SHELL ["Powershell"]

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

実際の行動

まず最初に、これをVirtualbox VMで実行しています。これに限定されないが、内部ネットワーク接続とテスト、SQLサーバーの実行、Docker構成環境に対して実行されるWCFサービス、データが正しく返されることなど、私が作業したいすべてのものが機能します。システムが実行することを期待していることはすべて機能しています。これが最後のステップです。指を交差させました:D。Hyper-Vが機能していて、すべてのマシンが期待どおりに機能しているので、これをVirtualBoxで実行しているという事実は問題になりません。言及する価値があると思います。

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

私のホストOS(サーバー2016)から私はこの情報を持っています:

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>

情報

DockerDebugInfo.ps1の出力:https ://gist.github.com/jcolebrand/170673e45bf8a659552f22f2071c30d6

システムインフォメーション

Windows Server Datacenter(MSDNダウンロード)64ビットの実行-バージョン1607-ビルド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

何らかの理由でこれが重要な場合は、ホストOSをアクティブ化する必要があります。私はワンショットの開発環境でこれを行っているので、VMのアクティブ化については特に心配していませんでした。これがいかに重要であるか、私には理解できません。特に他のすべては「ちょうど動く」ので。


同様の問題がこちらに投稿されているようですgithub.com/docker/for-win/issues/427 dockerサービスを停止してから開始してみてください。
PrestonM 2017

1
@PrestonMに感謝します。そして、コンピュータを再起動しました。そして、get-netnat | remove-netnat
jcolebrand

実行にStop-Service docker; Get-ContainerNetwork | Remove-ContainerNetwork -Force; Start-Service dockerはいくつかの問題があります。dockerという名前のサービスは見つかりませんでした。Get-ContainerNetworkでコンテナーネットワークが見つかりません
jcolebrand

コマンドはどこから実行していますか?Virtualbox、それともWindows Server?
PrestonM 2017

1
@PrestonM少し混乱しています。設定を要約してみましょう:OSXホスト-> VirtualBox-> Windows Server 2016-> Docker for Windows->コンテナ。スタックはすべてHyper-Vレイヤーで実行されており、アプリとローカルデータベースインスタンス(microsoft / mssql-server-windows-developer)間の内部ネットワーク通信を含め、コンテナーに対して要求する他のすべてを実行できるため、必要なすべてのことを実行できますすることは結構です。コマンドは、コンテナーのPowerShell用語で発行されています。Server2016はインターネットに問題なく到達できます。
jcolebrand 2017

回答:


5

問題は、WindowsイメージがDNSを最初にNATインターフェースのデフォルトゲートウェイとして構成し、次にホストマシンのDNSとして構成することです。DNSルックアップは、最初のリゾルバーと外部アクセスに対して失敗します。

--dns 8.8.8.8CLIに(またはローカルリゾルバー)を追加すると、問題を回避できるようです。


それは素晴らしいです。解決のためにバックログでこれを取得できるのは誰ですか?:D
jcolebrand 2017

@jcolebrandこんにちは、私も同じ問題に直面しています。企業のプロキシ設定があります。そのDNS構成をどこに追加する必要がありますか?daemon.jsonで?
user2301

この回答に示されているコマンドを試してみましたか?
jcolebrand 2018年

試した@jcolebrandが機能docker build --dns 8.8.8.8 -t choco .しませんでした。次に"dns": ["8.8.8.8"]、daemon.jsonで追加したが機能しませんでした。
user2301 2018年

1
DNSフラグはビルド時ではなく実行時だと思いましたか?
jcolebrand 2018年

2

コメントは一時的なものなので、次はこの問題を解決しようとしている人のための情報です。Docker for Windowsプロでない限り、この回答を編集して詳細を提供してください。その場合、より適切な回答をしてください。D

VMのNICをブリッジに変更し、サンダーボルトアダプターを追加した後、ITグループの問題のデモに行きました。セキュリティシステムが整っているので、セキュリティソフトウェアをVMに追加する必要があることに気付きましたが、ドメインに参加していないため、問題がありました。wifiアダプターでNATに切り替えてから、Windows 2016 VMで問題のデモを行ったところ、なんとなく魔法のように動作しました。

同じネットワーク。同じVM構成。同じソフトウェアとホスト、追跡できるものに変更はありません。

Get-ContainerNetworkまたはGet-WinNatで何も表示されないことを確認したところ、本当に診断が終わりました。そのNICアダプターを変更してから元に戻すと、明らかに何かがリセットされました。良い時間。

ですから、確かな答えはありませんが、StackExchangeの質問と回答の実績を踏まえれば、次の人が自分の足を引っ張られてしまうための適切な回避策があります。しかし、それがランダムなインターネットの質問者にも役立つことを願っています。


そして、問題を解決することが不可能な人のためのXKCD税。

XKCDコミック「古代の知恵」へのリンク


1
この説明によると、Windowsにも否定的な要求をキャッシュするこの種のアイデアがあるため、ネットワークスタックのシャット/ノーシャットによってクリアされたDNSキャッシュに請求書を発行したくなります。それが再び起こるようになった場合ipconfig /flushdns、Windowsホストで試す価値があるかもしれません
Tensibai

追加する意味は、この場合のホストはOSXであり、ベースOSがすべてをホストしていることを意味します。私がdockerコンテナーを実行している場所を意味している場合、それはウィンドウです。
jcolebrand 2018年

Windowsホストを意味します。* nixベースのネットワークスタックがネガティブクエリをキャッシュすることを覚えていません
Tensibai

1

コマンドプロンプト実行時ipconfig /allのために、ルックDNS Servers何かと出力のラインそのIPアドレスのように見えます。これがホストマシンのDNSサーバーです。

そのIPアドレスを持つエントリを編集C:\ProgramData\Docker\config\daemon.jsonして追加しdnsます。たとえば、DNSサーバーが192.10.0.2で、8.8.8.8がバックアップとしてのGoogleのDNSである場合:

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

Docker Desktopを再起動すると、ビルド時または実行時に、DockerでリモートURLを解決できます。

このソリューションはhttps://medium.com/@faithfulanere/solved-docker-build-could-not-resolve-archive-ubuntu-com-apt-get-fails-to-install-anything-9ea4dfdcdcf2にある Faithful Anereから提供されました


-1

https://chocolatey.org/install#completely-offline-installからのインストール手順を試してください(「プロキシの背後にインストールする」セクション):

    @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
ここでは別の質問に答えています。質問は、コンテナがインターネットアドレスを解決できない理由です
Tensibai
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.