2017-06-07 8 views
2

にアクセスすることはできません、私は、次のようなファイルをプルダウンcurlコマンドを持っています会社のネットワーク内からホストマシンからこのサーバにアクセスできますが、名前を使用するとドッキングコンテナ内からはアクセスできません(IPは正常に動作します)。ドッカーコンテナは、ローカルネットワークのDNS

これは動作します:これは動作しますRUN ping google.com

:これは動作しません

RUN ping 10.3.2.1(files.mycompany.comのIP):RUN ping files.mycompany.comは(私はから同じサーバにpingを実行する場合よりも、別のIPに名前を変換しますホストマシン)

同じネットワーク上の別のdevコンピュータからコンテナを作成すると問題が起こります。これは、ドッカーインターフェイスがローカルネットワークからDNSレコードを受信しないようなものですか?

私はUbuntu 17.04を実行しています。

答えて

2

があなたのホストでこの操作を行います。127.0.0...のようなものが表示されている場合

cat /etc/resolv.conf 

を、それはあなたのホストが使用するDNSの設定をlocalhostに聞くデーモンであることを意味しています。 Dockerはコンテナに独自のlocalhostを持っているため、同じDNSを使用するようコンテナに指示することはできません。したがって、dockerはデフォルトでGoogle DNS(8.8.8.8)になります。 cat /etc/resolv.conf

は、私はあなたが手順hereに従うので、あなたの/etc/docker/daemon.jsonを編集して、これを置くことをお勧めします:/etc/default/dockerについて

{"dns": ["your_dns_server_ip"]} 

注:このファイルあなたはこの容器内部をやっていることを確認することができます最新のUbuntuのバージョンではもう使用されません。代わりに、私が指摘したjsonファイルを作成します。 the docs/etc/docker/daemon.json

+0

ご返信ありがとうございます。ホストとコンテナresolv.confに関するあなたの見解は正しいです。私は/ etc/default/dockerを編集し、私たちのローカルDNSサーバ(JSONファイルは存在せず、貼り付けた行はJSONではない)を追加してから、sudoサービスドッカーを再起動しました。しかし、問題は続く。実行中のドッカーデーモンに現在の設定について問い合わせることは可能ですか?それは本当にこれが問題であるべきであるように感じるので。 – Jake

+0

--dnsオプションを追加すると、Docker runが動作します。docker run --dns 10.0.0.3 -it centos:7 ping files.mycompany.com -c 4しかし、ビルドには--dnsフラグはありません。 – Jake

+0

ビルドするには、試したとおりにドッカーのデーモンを設定する必要があります。正しいドッカー設定ファイルを探してみてください。それは時を経てその場所を変えました – Robert

関連する問題