Moby: resolv.confそのようなファイルはありませんoディレクトリ

作成日 2014年03月26日  ·  17コメント  ·  ソース: moby/moby

このガイドからubuntu12.04にdockerをインストールするために出発しました:
http://docs.docker.io/en/latest/installation/ubuntulinux/
そして私はこれを手に入れました

➜〜sudo docker run -i -t ubuntu / bin / bash
2014/03/26 11:45:17エラー:/etc/resolv.confを開きます:そのようなファイルまたはディレクトリはありません

助言がありますか?

arenetworking kinbug

最も参考になるコメント

この問題が発生しましたが、ディストリビューションであるSabayonLinuxのNetworkManager設定の副作用のようです。

私の場合、/ etc / resolve.confは/etc/resolvconf/run/resolve.confへのシンボリックリンクであり、NetworkManagerがネットワークに接続した後にのみ作成されます。 これにより、Dockerは起動時に起動に失敗しますが、ログインしてネットワークに接続した後は正常に起動します。

全てのコメント17件

ホストマシンに問題があります。 /etc/resolv.confを作成し、適切なDNS情報を入力して、コマンドを再試行してください。

これはDockerのバグではなく、ホストに/etc/resolv.confがないために発生する問題です。 ホストにresolv.confがない場合、問題を再現できます。

Linuxシステムを修正してください。

私見ファイルは必要ありませんよね? だから、それは壊れたOSについてであるべきではありません。
http://man7.org/linux/man-pages/man5/resolv.conf.5.html

このファイルが存在しない場合は、ローカルマシンのネームサーバーのみが照会されます。

その場合、DNSサーバーはローカルマシンで実行されている必要があります。

この問題が発生しましたが、ディストリビューションであるSabayonLinuxのNetworkManager設定の副作用のようです。

私の場合、/ etc / resolve.confは/etc/resolvconf/run/resolve.confへのシンボリックリンクであり、NetworkManagerがネットワークに接続した後にのみ作成されます。 これにより、Dockerは起動時に起動に失敗しますが、ログインしてネットワークに接続した後は正常に起動します。

@OOPMan initスクリプトで、

また、これがアップストリームのGo(具体的には「netgo」)の問題であるかどうかも疑問です。実際にresolv.confを直接チェックするのでしょうか、それともnetgo実装を介して間接的にのみチェックするのでしょうか。

私の問題はNMやSabayonLinuxとは何の関係もないことに気づきました:-)

AsusX550CCで実行しています。 全体として、まともなマシンですが、注意点が1つあります。Linuxでは、スリープしてから再開するまでWi-Fiハードウェアが無効になっています。 これは、有線LANに接続されていない起動時に、システムは基本的に動作中のネットワークがないと判断するため、/ etc /resolv.confには何も含まれないことを意味します。 Dockerはこれを好まないため、起動に失敗します。

一時停止-再開すると、すべてが正常になり、Dockerが起動します。

@unclejack @crosbymichael今日でも、Dockerバージョン1.12.6でこの問題が発生しています。
/etc/resolv.confがDockerコンテナを実行しているのはなぜですか?

これについては良い答えがなかったと思います。私もこれを経験しているので、再開します。 @thaJeztahネットワークメンテナにpingを

resolv.confマニュアル(glibcから)は次のように述べています。

   If this file does not exist, only the name server on the local
   machine will be queried; the domain name is determined from the
   hostname and the domain search path is constructed from the domain
   name.

したがって、resolv.confのないLinuxシステムは有効なLinuxシステムであると想定する必要があります。

golangのDNSresolv.conf読み込みロジックなどの他のソフトウェアは、同じ方法でresolv.confの欠落またはアクセス不能を処理します

また、nss-resolveやwinbind、ldapなどの非libcNSSモジュールを使用するシステムではresolv.confは必要ありません。

/ cc @sanimej

このバグにより、一部のディストリビューションでdockerをオフラインで使用することもできなくなります。

それを修正しようとしています: https

その場所に空のファイル名「resolv.conf」を作成するだけで、私の問題は解決しました〜

これに対する修正はhttps://github.com/moby/moby/commit/1ddeb11835600127a3319fc0dd3764e57ffbf521を通じてマージされたようです。これは次の17.10リリースに含まれる予定です。 https://github.com/docker/docker-ce/blob/17.10/components/engine/vendor/github.com/docker/libnetwork/sandbox_dns_unix.go

これはマスターで解決されるため、終了します👍

このページは役に立ちましたか?
0 / 5 - 0 評価