このガイドから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を開きます:そのようなファイルまたはディレクトリはありません
助言がありますか?
ホストマシンに問題があります。 /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
これはマスターで解決されるため、終了します👍
最も参考になるコメント
この問題が発生しましたが、ディストリビューションであるSabayonLinuxのNetworkManager設定の副作用のようです。
私の場合、/ etc / resolve.confは/etc/resolvconf/run/resolve.confへのシンボリックリンクであり、NetworkManagerがネットワークに接続した後にのみ作成されます。 これにより、Dockerは起動時に起動に失敗しますが、ログインしてネットワークに接続した後は正常に起動します。