LoginSignup
3
1

More than 1 year has passed since last update.

Dockerコンテナ内でIPアドレスを解決したい場合の代替コマンド

Last updated at Posted at 2021-06-15

みなさん、Dockerは使ってますか?Dockerをドカドカ使っていると、

「社内のHTTP APIを呼びたいのに、なぜかホスト名をIPアドレスに解決できない」

「本番環境のではなく開発環境のHTTP APIを呼んでしまっている(っぽい)」

なんて、ことが稀によく発生します。

一方で、定石に従ってDockerイメージを作っていると、

「Dockerイメージには最小限のバイナリしか入れていないので hostnslookup も使えない。だからホスト名がどう解決されているかも分からない。」

なんてことも起きがち。

そこで、最小限のコンテナに docker exec した時にホスト名解決を(雑に)確認できるコマンドを紹介します。

getent

glibc に含まれるコマンドです。

$ getent hosts qiita.com
2406:da14:add:902:68c3:7e8d:a9c:949e qiita.com
2406:da14:add:900:8bc:d6f3:591c:eb91 qiita.com
2406:da14:add:901:3a2b:2b27:a25f:7360 qiita.com

Ruby

$ ruby -rresolv -e 'puts Resolv.getaddress ARGV[0]' qiita.com
54.92.41.140

Python

$ python3 -c 'import sys, socket; print(socket.gethostbyname(sys.argv[1]))' qiita.com
54.250.97.111h
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1