2017-06-26 20 views
8

と私はdocker tutorialを以下だし、私が使用してアプリケーションを構築する必要が一部の午前:一時的な障害[errnoに-3]ドッカー

docker build -t friendlyhello . 

それは4段階にまで到達し、一時停止した後、私はこのエラーを取得:

Step 4/7 : RUN pip install -r requirements.txt 
---> Running in 7f4635a7510a 
Collecting Flask (from -r requirements.txt (line 1)) 

Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after 
connection broken by 
'NewConnectionError('<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection 
object at 0x7fe3984d9b10>: Failed to establish a new connection: 
[Errno -3] Temporary failure in name resolution',)': /simple/flask/ 

私はこのエラーが何を意味するのか、非常にわからないが、どのように私はそれを解決して行くことができます。

ありがとうございました!

+2

このエラーは、pipがDNS名の解決に失敗したことを意味します。まず、Dockerでネットワークが動作しているかどうかを確認します。 'docker -it --rm python:2.7-slim/bin/bash'を実行し、' ping pypi.python.org'と 'ping -n 8.8.8.8'を実行してみてください。 ctrl-Dまたは 'exit'で終了します。 pingが失敗した場合(結果を投稿する)、ネットワークやDNSに問題があります(OSの詳細とDockerのバージョンで質問を更新してください)。それがうまくいけば、Dockerかpipでいくつかのバグに遭遇しました。--verboseを追加して、コマンドが 'RUN pip install --verbose -r requirements.txt'になるようにしてください。おそらく役に立つものを提供するでしょう。 – drdaeman

+0

ご返信ありがとうございます。 pingはうまく動作しましたが、あなたが言及した最初のコマンドは、私にエラーを与えました。 '--verbose'を実行すると、次のようになります。 ' Getting page https://pypi.python.org/simple/flask/ "https://pypi.python.org/simple/flask/"キャッシュ内 キャッシュエントリが利用できません。 – monadoboi

答えて

4

この投稿は私のためにも機能しました!

Solved by dns mask disable:

sudo vim /etc/NetworkManager/NetworkManager.conf

comment out dns=dnsmasq -> #dns=dnsmasq

sudo service network-manager restart (or reboot VM in this case)

から:このエラーは、ドッカーコンテナがネットワークにアクセスすることができません意味https://github.com/moby/moby/issues/26330

0

。 systemdバージョン220から、特定のネットワーク(net.ipv4.conf..forwarding)の転送設定はデフォルトでoffになっています。この設定により、IP転送が防止されます。また、コンテナ内でnet.ipv4.conf.all.forwarding設定を有効にするDockerの動作と競合します。

コンテナがネットワーク内のホストを解決する必要がある場合、パブリックネームサーバーは適切ではありません。あなたはNetworkManagerのでdnsmasqのを無効にすることができますが、ドッカーが使用するDNSサーバを指定するか、または

  • でき

    1. :あなたは2つの選択肢があります。これを行うと、NetworkManagerは真のDNSネームサーバを/etc/resolv.confに追加しますが、dnsmasqの利点を失います。 これらの方法のいずれかを使用する必要があります。
    次の手順を実行する方法について読むことができます

    here

  • 2

    私は17 そのネットワーク内のDNSマスクを無効にして固定しまったドッキングウィンドウ-CE用のUbuntu 16.04.1機で同じ問題を抱えています。

    sudo nano /etc/NetworkManager/NetworkManager.conf 
    

    押しはCtrl + O保存して終了はCtrl + X

    再起動怒鳴るのコマンドを実行して、ネットワークサービスを入力します。

    sudo service network-manager restart 
    

    この後、ドッカーのビルドコマンドを実行するとすべて正常に動作します。

    2

    Ubuntu 16.04とDockerバージョン17.09.0-ceで同じ問題が発生しました。 私はdnsマスクを無効にするのが適切な解決策だとは思わない。ここで

    が、私はそれを解決する方法である:

    Ubuntuの

    編集は、/ etc/default /ドッキングウィンドウと次の行にあなたのDNSサーバーを追加するために


    DOCKER_OPTS="--dns 8.8.8.8 --dns 10.252.252.252"

    参考: Docker - Network calls fail during image build on corporate network

    0

    愚かですが、このエラーが発生したときにVPNを接続しました。

    VPNを切断した後、PIPは再び作業を開始しました。