日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

WSL2跟踪 - 18945: 通过localhost直接访问 WSL2 容器中的服务

發(fā)布時(shí)間:2023/12/8 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WSL2跟踪 - 18945: 通过localhost直接访问 WSL2 容器中的服务 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

WSL2跟蹤

    • 前言
    • 18945: 支持通過(guò)localhost訪問WSL2容器
      • bug: navicat 不能通過(guò)localhost直接訪問容器內(nèi)的mysql
    • WSL資料收集
      • 微軟WSL官方文檔

前言

WSL是Windows Subsystem for Linux的縮寫,即Windows系統(tǒng)的Linux子系統(tǒng),從WIN10 1607(內(nèi)部版本14393)后內(nèi)置于WIN10系統(tǒng)中,并且支持家庭版用戶的免費(fèi)使用。
WSL對(duì)于那些即想擁有WINDOWS系統(tǒng)成熟的桌面環(huán)境,又想方便的使用各種Linux服務(wù)并希望在Linux系統(tǒng)下開發(fā)的人員來(lái)說(shuō)非常友好。
其實(shí)回到十多年前,也有類似功能的一款軟件,它就是coLinux(Cooperative Linux的縮寫)。這款軟件的圖標(biāo)是中國(guó)的太極圖:

多么形象的圖標(biāo),企鵝-Linux和視窗-Windows統(tǒng)一在了一起。
本人曾使用coLinux很長(zhǎng)時(shí)間,直到后來(lái)隨著windows系統(tǒng)的升級(jí),coLinux越來(lái)越不穩(wěn)定,經(jīng)常導(dǎo)致windows藍(lán)屏而最終放棄。
在那個(gè)微軟視開源Linux系統(tǒng)為毒瘤、癌癥的年代里,coLinux可以說(shuō)生不逢時(shí)。這樣一款需要與系統(tǒng)底層打交道的軟件,如果沒有微軟的合作,很難做到穩(wěn)定。今天又打開coLinux官網(wǎng),發(fā)現(xiàn)Latest News停留在了2014年5月。
十年河?xùn)|十年河西,微軟終于轉(zhuǎn)變戰(zhàn)略,調(diào)整方向,以開放的姿態(tài)擁抱Linux,而且這個(gè)腳步越來(lái)越快。
WSL發(fā)布不久,我就開始嘗試在上面工作,我能無(wú)縫的在Windows和Linux融合環(huán)境下工作,這確實(shí)是一種非常好的體驗(yàn)。不過(guò)遺憾也有,比如不支持cgroup、docker、iptables、磁盤性能差等等,畢竟是windows內(nèi)核,很多問題很難解決。
面對(duì)這些問題,微軟開發(fā)了WSL2。雖然是2,但按微軟的路線圖WSL 和 WSL2 是共存、共同發(fā)展的。實(shí)際使用時(shí),WSL 和 WSL2能夠同時(shí)運(yùn)行,并且其鏡像也能在兩種模式中轉(zhuǎn)換。
WSL2是以HYPER-V虛擬化為基礎(chǔ),通過(guò)HYPER-V啟動(dòng)真正的Linux系統(tǒng),使用訂制的Linux內(nèi)核(該訂制版內(nèi)核源碼微軟已經(jīng)開源到了GITHUB上,想自己編譯內(nèi)核的同學(xué)可以參考我的另外一篇BLOG - 編譯更新 WSL2 內(nèi)核至4.19.57,增加 Squashfs 支持)。
微軟公布WSL2的技術(shù)方案后,有很多用戶表示失望,認(rèn)為這種技術(shù)就是HYPER-V上跑的Linux虛機(jī),擔(dān)心這樣會(huì)極大的犧牲性能。
本人最初也有此擔(dān)心,但當(dāng)體驗(yàn)近兩個(gè)月后,本人應(yīng)該不會(huì)再回到WSL:

  • HYPER-V 加 Linux內(nèi)核并沒有感覺到降低多少啟動(dòng)速度,打開WSL2容器仍然是數(shù)秒之內(nèi);
  • 真正的Linux內(nèi)核,Docker、cgroup、iptables這些服務(wù)都能正常工作。裝完WSL2后,我就把Windows上跑的Docker、Mysql 等服務(wù)遷進(jìn)了容器;
  • 飽受詬病的磁盤性能問題得到解決,這種提升就象把機(jī)械硬盤換代成了SSD硬盤。
  • WSL2還在快速的更新中,在GITHUB
    WSL中,微軟的開發(fā)人員與用戶的互動(dòng)也很密切,GITHUB上提的問題都能得到及時(shí)的回復(fù)。本人提出的問題得到了 Program Manager Craig Loewen
    多次及時(shí)的回復(fù)。

    工作中我會(huì)保持使用WIN10+WSL2——因?yàn)檫@確實(shí)是很酷的模式,并將長(zhǎng)期關(guān)注WSL2的發(fā)展。這篇博客將長(zhǎng)期跟蹤WSL2的發(fā)展,文中也會(huì)匯總使用中遇到的問題。

    WIN10+WSL2 這種開發(fā)模式應(yīng)該很快在開發(fā)人員中流行起來(lái),我們拭目以待。Microsoft is in the right way ~

    18945: 支持通過(guò)localhost訪問WSL2容器

    18945之前的WSL2版本,如果我們?cè)谌萜骼镞\(yùn)行了一個(gè)網(wǎng)絡(luò)服務(wù),例如啟動(dòng)一個(gè)WEB服務(wù)。想在 Win10 宿主機(jī)中訪問這個(gè)WEB服務(wù),我們先要通過(guò) ip a 或 ifconfig 命令查看其IP地址才能訪問,而且更崩潰的是每次重啟后再運(yùn)行WSL2容器,其IP地址和網(wǎng)關(guān)會(huì)重新分配。

    • 截止2019/8/3日,官方文檔中還是這種方式。

    這確實(shí)是件很麻煩的事情,為此有開發(fā)者特意用golang開發(fā)了一個(gè)windows服務(wù),讓用戶快捷的獲取到WSL2的IP。
    本次更新改進(jìn)了這個(gè)問題,我們?cè)赪IN10中能夠直接通過(guò)localhost 訪問到WSL2容器中的服務(wù),并且WLS2容器中的網(wǎng)絡(luò)服務(wù)也能綁定到 0.0.0.0 上

    例如:WSL2 容器內(nèi)啟動(dòng)web服務(wù)器,使用python http.server模塊啟動(dòng)一個(gè)WEB服務(wù)
    python3 -m http.server,默認(rèn)端口8000
    然后在win10中的web瀏覽器中訪問 http://localhost:8000/

    bug: navicat 不能通過(guò)localhost直接訪問容器內(nèi)的mysql

    github也有用戶反饋了這個(gè)問題,官方確認(rèn)是BUG并正在修復(fù)中。目前我的臨時(shí)解決方案是使用ssh隧道

    WSL資料收集

    微軟WSL官方文檔

    總結(jié)

    以上是生活随笔為你收集整理的WSL2跟踪 - 18945: 通过localhost直接访问 WSL2 容器中的服务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。