これはXYの問題かもしれないと思うので、私はこの問題を解決する最善の方法を知らないので質問の文脈を含めます。docker-compose内でDNSコンテナを設定するにはどうすればよいですか?
AWSにkubernetes環境を設定して、nginxコンテナとバックエンドサービス(SvcAと呼ぶ)の2つの部分を持つようにしました。バックエンドサービスは行ったり来たり、私のnginxの設定で、私はのようなものを持つことができるので:
resolver kube-dns.kube-system.svc.cluster.local valid=60s ipv6=off;
server {
# stuff
location/{
set $backend "SvcA.default.svc.cluster.local:8000";
proxy_pass http://$backend;
}
}
このセットアップはkubernetesでうまく動作しますが、私は方法がアップで(ほぼ)完全に同じセットを持っていたいですテスト/開発用の私のローカルマシンですが、kubernetesを使用するオーバーヘッドはありません。私がしたいことは、これらの2つのコンテナ(nginx、SvcA)をドッカー作成ファイルに貼り付け、それをそのように動作させることです。私が実行した問題は、nginxのリゾルバがkubernetesのURLになるようにハードコードされていることです。私が思っている解決策はDNSをコンテナにすることです。それは唯一のエントリです。 SvcA.default.svc.cluster.local "をdocker-compose assignsという名前に変更します。
これが問題を解決する最善の方法であるかどうかは不明です。問題がある場合は、これを設定するにはDNSの設定について十分に分かりません。これは私の問題に対する最良の解決策ですか、もしそうなら、これを処理するためにDNSサーバをどのように設定するのですか?
と話をすることができるはず https://docs.docker.com/compose/compose-file/
:
あなたがここの上に必要なすべての情報を見つけることができるかどう
より簡単な方法です。それが私にその道の大部分をもたらします。 「127.0.0.11」が常に内部ネームサーバのIPであるかどうか知っていますか? (私は、nginxの設定でリゾルバのための "extra_hosts"エントリを作成する必要があり、私はどのように内部DNSのIPを設定するためのドキュメントを見つけることができません) – Richard私はあなたがドッカーの作成.yml https://docs.docker.com/v1.11/compose/compose-file/#dns –