前提:linux系、tmuxコマンドが存在すること
wslを起動してターミナルの画面が開き、シェルが起動したら、tmux(仮想スクリーン)コマンドを起動し、デタッチしてシェルから抜け、ターミナルの画面が閉じたら後は放置で大丈夫。
tmuxについては、下記などをご参考に。
wsl上のdockerからも同じく接続できず!
windowsのfirewallがブロックしている!
windowsのfirewallを停止させると、あっけなくwslから通信できた!!
なんかあんまり情報が出てこない・・・
しゃーないので、windowsのfirewallに設定を追加だな。
firewallを起動して、受信の規則に新規追加・・・
全般-操作-接続を許可する、を選択。
プロトコルおよびポート-ローカルポートに開通させたいポート番号をカンマで区切って。(今回はmariadbなので 3306)
おまけで・・・スコープ-リモートIPアドレスに、wsl=windowsのローカルIPアドレスを追加。 (なぜなら、wslからwindowsへ接続しに来るときのIPアドレスはなぜか、ローカルIPアドレスだったので。IPアドレス制限しないなら不要だな。)
何にもしないでwslを立ち上げたとき、ホスト側からwslのサービスに接続する場合は localhost と指定すればよいらしい。
じゃあ 127.0.0.1 では?ダメでした。どうやらipv6でやっているみたい。::1ですね。
ブラウザでwslのwebサーバーへ接続すときは、http://localhost/ もしくは http://[::1]/ となります。
また、デフォルトのままだと、ホスト側のサービスとwsl上のサービスで同じポート番号を使うことはできないようです。
windows側のコマンドラインから、以下のレジストリ値を見る。
C:\> reg query HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss /v NatIpAddress HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss NatIpAddress REG_SZ 172.21.43.109
wsl上でdockerを利用する際のあれこれ。
phpでサイト構築等やる場合、ソースコードはwslのファイルシステム上に置き、windowsからwslのファイルシステムにアクセスする際は、ネットワークドライブ経由とする。ドライブ文字(Z:とかW:とか、何でもよい)を割り当てるのが簡単。
理由:ソースコードをwindowsのローカルファイルシステム(C:等)に置き、wslのdockerで /mnt/c/ などとして参照すると、ファイルアクセスが非常に遅い。裏でファイルを何やら変換する処理が走っているらしい。
キオクシア KIOXIA 内蔵 SSD 1TB NVMe M.2 Type 2280 PCIe Gen 4.0×4 (最大読込: 5,000MB/s) 国産BiCS FLASH TLC搭載 国内正規代理店5年保証 EXCERIA PLUS G3 SSD-CK1.0N4PLG3N