2022-05-30に投稿

Dockerコンテナ 上の名前解決とホストマシンの Windows の hosts

とある試験で Dockerコンテナ からのみ特別に名前解決したい、というケースが生じました。

そこでホストマシンの Windows の hosts が使えないか検証したのでメモ。

検証

# yum install -y bind-utils

まず今回検証したい Dockerコンテナ はデフォルトだと nslookup コマンドが入っていないのでインストール (bind-utils の中に含まれている)。

#192.0.2.1  hoge.example1.jp

続いてホストマシンの Windows の hosts を上述のように記述。あえてコメントアウトしてあります。

なお、 hoge.example1.jp は公開 DNSサーバ にはレコードが存在しないドメインだとします。

# nslookup
> hoge.example1.jp
Server:         127.0.0.11
Address:        127.0.0.11#53

** server can't find hoge.example1.jp: NXDOMAIN

この状態で Dockerコンテナ 上から nslookup 。上述の通り DNSサーバ にレコードが存在しない前提なので、名前解決できません。

# nslookup
> example1.jp
Server:         127.0.0.11
Address:        127.0.0.11#53

Non-authoritative answer:
Name:   example1.jp
Address: 192.0.2.11

逆に、 DNSサーバ にレコードが存在する example1.jp は名前解決できます。想定通りですね。

192.0.2.1   hoge.example1.jp

続いてホストマシンの Windows の hosts に記述をした場合です。

# nslookup
> hoge.example1.jp
Server:         127.0.0.11
Address:        127.0.0.11#53

Non-authoritative answer:
Name:   hoge.example1.jp
Address: 192.0.2.1

名前解決できました。このことから、 Dockerコンテナ はホストマシンの hosts を参照することが分かりました。

これで検証が進められます。

参考

Originally published at labor.ewigleere.net
ツイッターでシェア
みんなに共有、忘れないようにメモ

arm-band

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント