Dockerクイズ
手動で起動したappコンテナとdbコンテナを、コンテナ名で安定して通信させたいです。最も適切な方法はどれですか?
解説
正解: ユーザー定義bridgeネットワークを作成し、両方のコンテナを同じネットワークに参加させるユーザー定義bridgeネットワークでは、同じネットワーク上のコンテナ同士がコンテナ名で名前解決できます。IPアドレスを直接指定するより、再作成に強く、複数コンテナ構成を扱いやすくなります。補足: Composeを使う場合はプロジェクト用ネットワークが自動作成されるため、サービス名で通信できるケースが多いです。A. 両方のコンテナで--exposeを指定すれば、名前解決も自動で安定する: exposeはポート情報であり、ネットワーク作成や名前解決の保証ではありません。B. 両方のコンテナで--rmを指定すれば、同じネットワークに固定される: --rmは停止時削除の指定です。C. 両方のコンテナでホスト側の同じポート番号を公開する: 同じホストポートは競合し、コンテナ間通信の解決策ではありません。D. ユーザー定義bridgeネットワークを作成し、両方のコンテナを同じネットワークに参加させる: これが正解です。