2016-04-28 4 views
4

で定義されたネームサーバでコンテナを起動するために私のDockerfileドッカーコンテナ・ディレクティブのドッキングウィンドウの実行--dnsを作成するときにどのようにここでは/etc/resolv.conf

FROM javamachine_0.1.2 
MAINTAINER Meiram 
RUN /report/report.sh start 
ENV LANG C.UTF-8 ENV LANGUAGE C.UTF-8 ENV LC_ALL C.UTF-8 
RUN echo "nameserver 192.168.1.100" > /etc/resolv.conf 
COPY resolv.conf /etc/resolv.conf 
EXPOSE 9090 

も/etc/resolv.confにエントリを変更しませんさ

どのように/etc/resolv.confのエントリを永久に変更するのですか?

+0

を見ます.com/questions/45672193/curl-command-returns-nothing-in-dockerfile-it-works-in-other-other-linu)とその答えです。 –

答えて

1

あなたはこれらの行削除する必要があるかもしれません--dns使用している場合:また

RUN echo "nameserver 192.168.1.100" > /etc/resolv.conf 
COPY resolv.conf /etc/resolv.conf 

を、

は、COPYコマンドは、以前のものを上書きします。..あまりにもラインを交換してみてください。

+0

Dockerfileでイメージを再構築します。 私は ドッキングウィンドウの実行が8.8.8.8テスト/ test_img_0.1.2を--dns> /etc/resolv.confの COPY resolv.confの/etc/resolv.confの RUNエコー "ネームサーバ192.168.1.100" の2ラインを拭い しかし、コンテナを開始できません。 –

+0

私はおそらくそれを知らない コンテナを作成するとき ドッカーの実行--dns 8.8.8。8 -td ubunu:最新 これは問題ありません。 しかし、私はドッキングウィンドウの実行--net my_net --dns 8.8.8.8 --ip 10.10.10.10 -td Ubuntuの 既存のネットワークとのコンテナを作成する必要があり、静的IP:最新 に/etc/resolv.confエントリは です nameserver 127.0.0.11 options ndots:0 –

+0

dockerの公式リソース(非公式)はresolv.confを直接改ざんしないよう強く勧めているようです - ドッカーエンジンはそれを管理することになっています(これは/ etc /ホスト)。私はあなたが上記の '--dns'オプションをdocker eningeまたはコンテナの実行時間のいずれかに使うことができると信じています。 – demaniak

1

デフォルトのネットワーク設定とコンテナを作成する必要があるとき、私は答え

を発見した(172.0.0.x)

が働いているキー--dns。 しかし、ユーザーが定義したネットワークでは動作しません--net some_name_of_your_network

あなたは、コンテナを作成する必要があるのであれば、あなたは、このコマンドに

docker run --net my_net --ip 192.168.1.x --add-host webserver:192.168.1.100 --add-host mysqlserver:192.168.1.x -td someimage 

を使用して/ etc/hostsの

にホスト名を定義することができますしかし、この解決策は私には受け入れられません。私は/etc/resolv.confを編集する必要があるので、

1

https://docs.docker.com/engine/userguide/networking/default_network/configure-dns/を参照してください。

あなたは

--dns=192.168.1.100 

あなたがしているという事実に基づいて(あなたのホストはあなたのDNSで解決可能であることを仮定して)すべての--add-hostオプションの代わりに、お使いのドッキングウィンドウのコマンドラインに以下を追加したいと思います複数のサービスを実行している場合、Webサーバーとmysqlserverがドッキング・コンテナでもある場合は、ドッキング・コンポーズを使用してコンテナのコレクションを構成できます。詳細については、https://docs.docker.com/compose/overview/を参照してください。 // stackoverflowの:

+0

複数のネームサーバーを設定する必要がある場合はどうすればよいですか?私は例えば2つを設定しようとしています。 – finbarr

+0

答えが返ってくるのは、このフラグを繰り返すことだけです。申し訳ありません。 [Github](https://github.com/docker/docker/issues/5435)を参照してください。この場合、 '--dns = 192.168.1.100 --dns = 192.168.1.101'が動作します。 – finbarr

関連する問題