1. トップ
  2. 新着ニュース
  3. IT
  4. パソコン

Windows Subsystem for Linuxガイド 第38回 WSL2でDockerを使う その4「ネットワーク接続Dockerエンジン編」

マイナビニュース / 2024年7月2日 13時42分

画像提供:マイナビニュース

今回は、前回の続きで、docker engineをWSLにインストールした場合、コンテナとネットワーク通信を行う場合を考える。基本的な事項などに関しては、前回記事「第37回 WSL2でDockerを使う その3」を参照していただきたい。

この連載では、WSL上にdocker engineをインストールして利用することを「Dockerエンジン」と表記し、docker desktopの利用(Dockerデスクトップ)と区別している。Dockerデスクトップの場合については上記の前回記事を参照してほしい。

評価は、WSL バージョン2.1.5.0(Linuxカーネル バージョン5.15.146.1-2)、をWindows 11 Ver.23H2(OSビルド10.0.22631.3737)の上で行った。docker desktopのバージョンは4.30.0(149282)、dockerエンジンのバージョンは、26.1.1である。

ここでは、話を単純にするため、WSLのファイアウォール機能は無効にしてある(詳細は前掲の前回記事を参照のこと)。

WSLのネットワークには、networkingモードがあり、NATモードとMirroredモードを切り替えることができる。両者の違いを簡単にまとめた表(表01)を再掲しておく。

Dockerには、コンテナのネットワーク接続は「コンテナ用ネットワーク(bridge)」、「ホストネットワーク(host)」および、「ネットワークなし(none)」の3つがある。これらはdocker runコマンドの起動オプション(--net)で指定できる。また、デフォルトでは、コンテナを管理するdockerデーモン(dockerd)は、IPv4でのみ動作し、IPv6を使うには、別途Dockerエンジンの設定が必要になる。

結論からいうとDockerエンジンの場合、NATモードでWin32側からのアクセスを可能にするには、Win32側のIPアドレスを使う。あるいは、localhostForwardingを有効にする。これにより、WSL側へのlocalhostおよび127.0.0.1でのアクセスが可能になる。可搬性があることがコンテナの特徴であり、そのためのスクリプトなども可搬性があることが望ましい。この点から言えば、Win32側でスクリプトやURLショートカットなどを使う場合には、localhostForwardingを使う。これで、コンテナで動作するネットワークサービスにlocalhostでアクセスが可能になり、スクリプトやURLショートカットにも可搬性ができる。

この記事に関連するニュース

トピックスRSS

ランキング

複数ページをまたぐ記事です

記事の最終ページでミッション達成してください