【メモ】ローカルのDockerで「プライバシーエラー」が出たら

ある日突然やってくる「プライバシーエラー」。いろいろ悩んだけど原因は単純でした






ローカル環境で「プライバシーエラー」

引っ越ししたぐらいのタイミングからローカル環境にアクセスすると「プライバシーエラー」が出るようになってしまいました。





このエラーは通常SSLサーバ証明書の期限が切れていたり、正しくなかったりしたときに、サイトの安全性が確認出来ないという意味で表示されるものですが、アクセス先はローカル開発環境ですしSSLサーバ証明書といってもmkcertで作成したオレオレ証明書ですし、何も変更していない中でのこれは理由がよくわからず。

何かと忙しかったのでしばらく放置していたんですけど、ローカルで動かせないのはとても不便なのでちょうど手が空いた週末に調べてみたら……



原因:DockerのローカルIPアドレスが変わってた

色々調べてわからなくて、しかしふと思いついてhostsファイルを開いてみたらこんなんなってました。


# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#127.0.0.1       localhost
#::1             localhost


192.168.1.2 localhost
192.168.1.2 mydomain
# Added by Docker Desktop
192.168.1.4 host.docker.internal
192.168.1.4 gateway.docker.internal
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section


ん?


192.168.1.2 localhost ← ここのIPアドレスと
192.168.1.2 mydomain
# Added by Docker Desktop
192.168.1.4 host.docker.internal ← ここのIPアドレスが違う
192.168.1.4 gateway.docker.internal
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section


というわけで、hostsで設定したドメインのIPアドレスを「host.docker.internal」と同じに変えてやったらアクセス出来るようになりましたとさ。



どうしてこうなった?

引っ越しとともにインターネットプロバイダを変えたんですよ。その時にWi-Fiルーターも更新したんですけど(IPv6対応じゃないとダメだった)、どうやらそれが影響しているようです。

というのも、今、これまでDockerが使っていたローカルIPアドレス「192.168.1.2」にアクセスすると、Wi-Fiルータの設定画面に繋がるんですよね。ローカルIPアドレスの割り当ての理屈が僕にはよくわかりませんけど、ネットワークの再構築が行われて「192.168.1.2」にWi-Fiルータが割り込んで、Dockerは「192.168.1.4」に変更になった……ということのようです。


なんかイマイチもやもやしますけど、ネットワークの構成変えるたびにこれ起きるの?とか、でもまあ同じ症状が起きたらhostsファイルを確認すればいいだけなので、まあいいか。


トラブル解決としては中途半端ですが、メモとして残しておきます。困った誰かもしくは将来の僕のためになれば。