0
Help us understand the problem. What are the problem?

posted at

updated at

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

発生した問題

:no_entry_sign:「クライアントPC-2」から「サーバーPC(CentOS/Docker)」のアクセスができなくなりました。

一方で、以下の通信は問題ありませんでした。
:white_check_mark:「クライアントPC-1」から「サーバーPC(CentOS/Docker)」のアクセスは問題なし。
:white_check_mark: ネットワークA/Bのルーティングも正しく設定されており、
  「クライアントPC-2」から「ファイルサーバー」へのアクセスは問題なし。

解決方法

以下のドキュメントより、Dockerコンテナ内部から参照されるDNSサーバーに
ネットワークA/Bの通信に必要なDNSサーバーを追加したことで解決となりました。

参考:
docker docs / Manuals / Docker Engine / Optional post-installation steps

まとめ

正確には、「サーバーPC(CentOS/Docker)」までリクエストは届いていたものの、
そのレスポンスが正常に返っていなかったことが原因だったようです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0
Help us understand the problem. What are the problem?