LoginSignup
8
4

More than 3 years have passed since last update.

DockerのAlpineのapkが名前解決に失敗しててハマった

Posted at

エラーメッセージ

ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.11/main: No such file or directory
WARNING: Ignoring APKINDEX.70f61090.tar.gz: No such file or directory
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.11/community: No such file or directory
WARNING: Ignoring APKINDEX.ca2fea5b.tar.gz: No such file or directory
2 errors; 15 distinct packages available


考えたこと

明らかにAlpine側の問題だろうと思っていたのですが、
このIssueがだいぶ前からあったみたいで、

ここでめっちゃ盛り上がっています。
何が原因なのかよくわからないんですけど、
http://dl-cdn.alpinelinux.org/alpine/v3.11/community
直接curlで取りに行くと取れるんですよね。
にも関わらず、Error MessageはNo such file or directoryとなっている。

ということは、
- Alpine側のDNSがぶっ壊れているのか
- Dockerコンテナの内部ネットワークがおかしくなっているのか

と考えられそうです。

まぁ、Dockerでyumやaptでファイルはとってこれているので、おかしいことないと思うのですが、一応Dockerのホストを探す仕組みを調べてみます。

Dockerの外部との通信の仕組みが簡潔にわかりやすく書いてありますね。

この警告は、Docker コンテナがローカルの DNS サーバを使えないためです。そのかわりDocker はデフォルトで外部のネームサーバを使います。

なるほど。どうぞどうぞって感じですが、使っているDNSサーバーは違うんですね。

ローカルのみてるDNSと別物みたいですし、このネームサーバーに到達できなくてコケている説をまず考えてみますか。

とりま、Dockerのイメージの内部で、どのように名前解決しているのかを調べたいのですが、どこにDNSの設定ファイルがあるのか。。。

頑張って調べたところ、どうやら/etc/resolv.confが参照しているDNSのアドレスを設定する場所っぽかったので確認すると

nameserver 8.8.8.8
nameserver 8.8.4.4

となっていました。

ローカルのマックの方は

#
# macOS Notice
#
# This file is not consulted for DNS hostname resolution, address
# resolution, or the DNS query routing mechanism used by most
# processes on this system.
#
# To view the DNS configuration used by this system, use:
#   scutil --dns
#
# SEE ALSO
#   dns-sd(1), scutil(8)
#
# This file is automatically generated.
#
nameserver 192.168.254.2
nameserver 8.8.8.8

192の方が普通にローカルが参照してるDNSだろうなぁという感じ
8.8.8.8はDockerによって追記されたものだろうけど、
多分ここにたどり着いていないんですよね。
なので、

nameserver 192.168.254.2
nameserver 8.8.8.8
nameserver 8.8.4.4

としてみると、

うまくいきました:smile:

8.8.8.8からAlpineが見えないのは結局Alpine側が悪いってことでいいんですかね??(よくわかってない)

8
4
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
8
4