【Day 35】外部DBやホストOSのサービスと通信する(host.docker.internal) 〜コンテナからホストへの逆引き通信・Windows/Linux挙動差異(extra_hosts)・レガシー資産とのハイブリッド移行戦略・C# EF Core接続文字列設計〜
▲ Day 35: 外部DBやホストOSのサービスと通信する(host.docker.internal) 🐳 「コンテナの中から、開発PC上で元気に動いているSQL Serverに繋がらない!? localhostって書いたら自分自身を探しに行って爆死したんだが…!」 前回(Day 34)は、ポートマッピング( -p 8080:80 )によって「ホストOSからコンテナへ外から内側へ通信する」仕組みをマスターしました。 しかし、現場で次に必ず突き当たるのが 「逆方向(コンテナの内側からホストOS・外部既存システムへ通信したい)」 という強い要求です。 「手元のWindows PCには長年育ててきた巨大なSQL Server ExpressやOracleインスタンスがある。まずはC# Web APIだけをコンテナ化して試したいのに、接続文字列に Server=localhost と書くと接続タイムアウトで即死する! ホストPCのIPアドレスを直書きするとWi-Fi切り替えやDHCPで毎日変わって破綻する!一体どうやってホストOSに繋げばいいんだ!?」 本講義では、Dockerが提供する特殊DNS名 host.docker.internal の仕組みから、Linux/CI環境での extra_hosts 対策、そして大規模レガシー資産を抱える現場で安全にコンテナ化を進める「ハイブリッド移行戦略」までを徹底解説します! 📑 本講義のロードマップ 第1章:なぜ localhost ではホストPCに届かないのか? 〜ネットワーク名前空間(Namespace)の隔離壁〜 第2章:魔法の特殊DNS名 h...