2016-04-01 21 views
3

他のコンテナのDNS(コンテナ内)を設定しています。それは私が手で行うときに非常にうまくいく(--dns=172.17.0.100docker runに渡す)。Docker:コンテナのDNSを設定する

私のプロジェクトにはドッカーの作成を使用する必要があります。私のDNSコンテナのIPアドレスが常に変更されているため、できません。コンテナの静的IPアドレスを設定したくありません。私はこれをどのようにするべきですか?

DNSコンテナ名を渡して認識できる方法はありますか?

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

答えて

1

ない本当にコメントには大きすぎるの答えが、いくつかの観察は、...

1 - それは

docker inspect 

2に役立ちます場合は、実行中のコンテナに関する情報を取得することができます - あなたが使用することができますdocker-compose.ymlファイルの環境変数 - これらの環境変数は、使用したいIPを参照することができます。また、変数値をスクリプトのdocker-compose.ymlに渡すこともできます。

うまくいけば、これはあなたがカスタムエントリポイントスクリプトにリンクされた容器を使用することができ、この

0

を解決する手助けに一部の道を行くだろう。あなたのコンテナは、次のように起動します。

docker run --link your-dns-server:dns --entrypoint /path/to/entrypoint.sh <image> <command> 

また、あなたのイメージのDockerfile代わり--entrypointパラメータを渡すのにENTRYPOINTを追加します。

あなたはその後、entrypoint.shスクリプト(コンテナの画像内に存在する必要があります)で動的に/etc/resolv.confファイルに使用するネームサーバを記述することができます。

#!/bin/sh 
echo "nameserver ${DNS_PORT_53_UDP_ADDR}" > /etc/resolv.conf 
exec [email protected] 
関連する問題