サーバー自体のネットワークは正常なのに、
Docker コンテナの中だけで ping、curl、外部通信がすべて失敗するケースがある。
この場合、問題はサーバーのネットワークではなく、
Docker のネットワークスタックにある。
症状
ホスト側は正常
ping 8.8.8.8
curl https://google.com
正常に応答する。
DNS やルーティングの問題はない。
コンテナ内では失敗
docker exec -it <container> ping 8.8.8.8
docker exec -it <container> curl https://google.com
- Network is unreachable
- Temporary failure in name resolution
- 応答なし
👉 ホスト OK / コンテナ FAIL
原因まとめ(ほとんどはここで終わる)
この状況の大半は、以下のいずれかが原因だ。
- Docker bridge ネットワークの状態破綻
- iptables / nftables ルールの不整合
- Docker DNS 設定の破損
- カーネルのネットワーク状態と Docker ネットワーク状態の不一致
つまり、Docker のネットワーク階層だけが壊れている状態。
最も確実な解決策
systemctl restart docker
- Docker ネットワークスタックを初期化
- bridge / iptables / DNS をすべて再構成
👉 ほとんどのケースで即座に解決する。
ただし…
Docker を再起動できない環境もある。
- プロダクショントラフィック稼働中
- 数十個のコンテナに影響
- 再起動自体が障害になる
その場合に試す価値がある代替手段だけを整理する。
対応 1: 問題のあるコンテナだけネットワークを再接続
現在のネットワーク確認:
docker inspect <container> | grep -i network
ネットワーク再接続:
docker network disconnect bridge <container>
docker network connect bridge <container>
- コンテナは停止しない
- ネットワークインターフェースのみ再生成
👉 DNS やルーティング問題の場合に有効。
対応 2: Docker DNS 問題を強制回避
Docker 内部 DNS が壊れているケースは多い。
一時確認:
docker exec -it <container> cat /etc/resolv.conf
nameserver が不正、または応答しない場合:
コンテナ起動時に DNS を直接指定する。
docker run --dns 8.8.8.8 --dns 1.1.1.1 ...
または docker-compose.yml:
dns:
- 8.8.8.8
- 1.1.1.1
👉 DNS だけが壊れている場合は非常に効果的。
対応 3: iptables / FORWARD ポリシー確認
Docker はカーネルの FORWARD チェーンに依存する。
iptables -L FORWARD
以下は問題状態:
Chain FORWARD (policy DROP)
一時的な対応:
iptables -P FORWARD ACCEPT
⚠️ セキュリティポリシーに影響あり
確認用途のみに使用する。
対応 4: docker0 インターフェース状態確認
ip addr show docker0
ip route
- docker0 が DOWN
- Docker サブネットがルーティングテーブルに存在しない
→ Docker ネットワーク自体が崩壊
→ この場合、再起動以外に解決策はない
諦めて再起動すべきタイミング
以下のいずれかに当てはまる場合、
Docker 再起動が唯一の解決策になる。
- docker0 インターフェースが DOWN
- 複数コンテナで同時にネットワーク障害
- iptables ルールが継続的に壊れる
- 原因不明の DNS 失敗が繰り返される
👉 この状態で耐え続ける方がリスクが高い。
要点まとめ
- ホストのネットワークが正常ならサーバー問題ではない
- コンテナだけ通信できない場合は Docker ネットワーク問題
- 最も確実な解決策は Docker 再起動
再起動できない場合のみ:
- ネットワーク再接続
- DNS 回避
- FORWARD ポリシー確認
この順で対応すれば、
不要なサーバー再起動や無駄なアプリケーション調査を避けられる。
🛠 마지막 수정일: 2025.12.24
💡 お困りですか?
Zabbix、Kubernetes、各種オープンソースインフラの構築・運用・最適化・障害解析が必要であれば、いつでもご連絡ください。
📧 メール: jikimy75@gmail.com
💼 サービス: 導入支援 | 性能チューニング | 障害解析コンサルティング