マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

ネットワーク設定が解らなかったので。

詳細

構成

Windowsホスト各コンテナの間には、
DockerNAT > MobyLinuxVMがある。

Windowsホスト

  • Windows上のDockerクライアントから
    MobyLinuxVMへリモート接続(名前付きパイプを介して)している。
  • DockerNATはデフォルトで、10.0.75.1/24をWindowsホストに割り当てる。

DockerNAT

MobyLinuxVM

  • LinuxのネイティブなDockerホスト環境とDockerデーモン
  • DockerNATはデフォルトで、10.0.75.2/24をMobyLinuxVMに割り当てる。

Docker0

MobyLinuxVM各コンテナは、
既定値では、Docker0というネットワークで繋がっている。

各コンテナ

MobyLinuxVM上のDockerデーモンは、
172.17.0.0/16の範囲でIPアドレスをコンテナに割り当てる。

接続例

Windowsホスト各コンテナ

  • 「localhost:ポート番号」で接続可能。
  • ポート番号は、docker-compose.ymlファイルの
    portsセクションに「ホスト・ポート:コンテナ・ポート」の書式で指定する。

各コンテナWindowsホストのローカルサービス

各コンテナから、10.0.75.1で、Windowsホストのローカルサービスにブリッジ可能。

Windowsホストの外部IP → Windowsホスト各コンテナ

WindowsホストのIPアドレスで各コンテナにアクセスする。

  • Windows ファイアウォールの受信規則で、ポートを開放し、
  • Docker Desktop 2.1.0.5 以前
  • 以下のルーティング設定を行い、
    WindowsホストのIPアドレスを10.0.75.1にマップする。
    >ipconfig
      IPv4 アドレス . . . . . . . . . . . .: yyy.yyy.yyy.yyy
      サブネット マスク . . . . . . . . . .: xxx.xxx.xxx.xxx
    ...
    
    >route -p add 10.0.75.1 mask xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy
    OK!
    
    >route print
    ...
  • ルーティング設定を削除する場合は以下。
    >route delete 10.0.75.1 mask xxx.xxx.xxx.xxx
    OK!
  • Docker Desktop 2.2.0 以降
    既定で、Windowsホストの外部IPで接続できる模様。

各コンテナWindowsホストの外部IP → 各コンテナ

WindowsホストMobyLinuxVMのIP → コンテナ

Windowsホストから、MobyLinuxVMのIPアドレスでアクセスする。

  • 以下のルーティング設定を行い、
    MobyLinuxVMのIPアドレスを172.17.0.0にマップする。
    $ route add 172.17.0.0 MASK 255.255.0.0 10.0.75.2
  • ルーティング設定を削除する場合は以下。
    $ route del 172.17.0.0

DockerNAT廃止

DockerNAT廃止に伴い、10.0.75.1が、
不要になる(と言うか使えなくなる)らしい。

調べてみたトコロ、Windowsホストの外部IPで接続できる模様。

参考

  • 図解で理解できる(はず)Microsoftの仮想化技術
    ――Windows上で稼働するLinux、動かしているのはどのテクノロジー?(その2)
    (2/2):その知識、ホントに正しい? Windowsにまつわる都市伝説(95) - @IT
    https://www.atmarkit.co.jp/ait/articles/1710/24/news010_2.html

開発基盤部会 Wiki

Dockerのネットワーク設定


Tags: :Windows, :Hyper-V, :仮想化


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-07-03 (金) 19:10:17 (32d)