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

Windows Subsystem for Linuxガイド 第37回 WSL2でDockerを使う その3「ネットワーク接続Dockerデスクトップ編」

マイナビニュース / 2024年6月25日 16時17分

また、ここでは、話を単純にするため、WSLのファイアウォール機能は無効にしてある。具体的には、.wslconfigファイルで以下のように“[wsl2]”セクションに

[wsl2]
firewall=false

と記述する。

もし、WSLのファイアウォールを有効にした場合には、利用するネットワーク通信に応じてファイアウォール・ルールを設定する必要がある。これについては、過去記事「Windows Subsystem for Linuxガイド 第33回 WSLv2.0 Hyper-V Firewallを使う」参照していただきたい。

Dockerデスクトップのネットワーク

Dockerの動作などについて解説することは、この記事の趣旨ではないが、以後のネットワークの説明を理解するために、最低限必要なDockerのネットワークに関して記述しておく。

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

コンテナ用ネットワークは、Dockerがコンテナ用に用意するネットワークでDockerではこれをbridgeと呼ぶ。具体的には、Dockerのホスト側とは異なる独自のIPアドレスを持つコンテナ用のネットワークがあり、Dockerがこれを制御する。bridgeは、WSL側、およびコンテナ内では、docker0というネットワーク・インターフェースが接続している。

もう1つのホストネットワークはhostと呼ばれ、ホストのIPアドレスを使う。この場合、コンテナの待ち受けは、ホスト側のプロセスの待ち受けと同じになる。

Dockerデスクトップでは、Win32側で動作しているプロセス(com.docker.backend)が、Win32側IPアドレスでコンテナの公開ポート番号での待ち受けを行う。このため、ネットワーク接続に関しては、Win32側プロセスと同じように扱うことができ、特にWSL側でコンテナが動作していることを意識する必要はない。

なお、Win32側のファイアウォールを制御する場合、このプロセスを対象にルールを設定する。デフォルトでは、すべてのパケットを通過させる設定が行われている。

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

トピックスRSS

ランキング

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

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