Dockerコンテナへ一部のネットワークからアクセスできなくなった
Dockerコンテナへ一部のネットワークからアクセスできなくなる事象が発生したため、
解決に至った流れを以下にまとめておきます。(お急ぎの方は、解決方法
をご覧ください)
はじめに
古いデスクトップPCに CentOS 7 をクリーンインストールし、
そこで Docker Engine を起動、コンテナを立ち上げて使用していました。
インストール直後は問題なかった記憶ですが、今回アクセスできなくなったネットワークは
普段あまり使用していなかったため、原因(なぜこれが起きたか)の特定まではできませんでした。
ネットワーク環境
◎ ネットワークA:192.168.1.0/24
・192.168.1.1:クライアントPC-1
・192.168.1.2:サーバーPC(CentOS/Docker)
・192.168.1.3:ファイルサーバー
◎ ネットワークB:192.168.2.0/24
・192.168.2.1:クライアントPC-2
発生した問題
🚫「クライアントPC-2」から「サーバーPC(CentOS/Docker)」のアクセスができなくなりました。
一方で、以下の通信は問題ありませんでした。
✅「クライアントPC-1」から「サーバーPC(CentOS/Docker)」のアクセスは問題なし。
✅ ネットワークA/Bのルーティングも正しく設定されており、
「クライアントPC-2」から「ファイルサーバー」へのアクセスは問題なし。
解決方法
以下のドキュメントより、Dockerコンテナ内部から参照されるDNSサーバーに
ネットワークA/Bの通信に必要なDNSサーバーを追加したことで解決となりました。
{
"dns": ["8.8.8.8", "8.8.4.4"]
}
参考:
https://docs.docker.com/engine/install/troubleshoot/#specify-dns-servers-for-docker
まとめ
正確には、「サーバーPC(CentOS/Docker)」までリクエストは届いていたものの、
そのレスポンスが正常に返っていなかったことが原因だったようです。