久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

Windows上用wslc跑Linux容器:安裝、鏡像構(gòu)建與排障復(fù)盤

Windows上用wslc跑Linux容器:安裝、鏡像構(gòu)建與排障復(fù)盤 在 Windows 上跑 Linux 容器這件事我前前后后換過四套方案。最早是裝個完整虛擬機開機三分鐘內(nèi)存先吃掉一半后來用桌面版容器工具圖形界面點著舒服但一旦要和命令行腳本、流水線對齊就總隔著一層說不清的封裝再后來是在 WSL 里手動裝容器引擎能跑但每次換機器都要重來一遍那套拳法。wslcWSL Containers出現(xiàn)之后這套流程被壓縮成了一個命令的事——容器直接跑在 WSL 內(nèi)核之上不需要額外開虛擬機也不需要一套獨立的后臺服務(wù)常駐。這篇是我把 wslc 從零裝到日常使用、再踩了幾個坑之后的完整復(fù)盤包含安裝順序、命令鏈路、鏡像構(gòu)建、路徑映射陷阱和排障思路。適合兩類人看一是在 Windows 上做 Linux 側(cè)開發(fā)、被環(huán)境折騰過的二是已經(jīng)裝上了 wslc但卡在掛載、端口或者構(gòu)建失敗上出不來的。命令細節(jié)我會給出具體寫法同時提醒哪些地方會隨預(yù)覽版本變化——這一點很重要別把某一版的命令當(dāng)成永久契約。1. wslc 的定位它和虛擬機方案、桌面容器工具的分界線在哪1.1 三層隔離模型進程級、發(fā)行版級、容器級要理解 wslc 為什么輕得先把隔離這件事拆成三層看。最外面一層是虛擬機它模擬整套硬件有自己的內(nèi)核隔離最徹底代價是啟動慢、內(nèi)存占用固定且偏高中間一層是 WSL 里的 Linux 發(fā)行版實例它共享宿主內(nèi)核的部分能力但有自己的文件系統(tǒng)、用戶體系和軟件包管理本質(zhì)是一個輕量虛擬機加系統(tǒng)調(diào)用翻譯最里面一層就是容器它只做命名空間和資源限制進程直接跑在同一個內(nèi)核上沒有獨立的引導(dǎo)過程。wslc 的位置很有意思它把容器這一層直接架在了 WSL 的發(fā)行版實例里面。也就是說你不需要先開一個虛擬機再在虛擬機里裝容器引擎再在引擎里跑容器——這三層被壓成了兩層。實際感受是wslc run一個基礎(chǔ)鏡像從敲下回車到出現(xiàn) shell 提示符通常在兩秒以內(nèi)而同樣的事情在完整虛擬機方案里要二十秒起步。這個壓縮帶來的直接好處是資源賬好算了。你不需要為虛擬機本身預(yù)留一份固定內(nèi)存容器不用的時候它就是個靜止的進程集合不占 CPU。但代價也要說清楚既然容器共享的是 WSL 實例的內(nèi)核那么內(nèi)核參數(shù)、內(nèi)核模塊、某些需要特權(quán)的操作就會受限于這個實例的配置而不是像獨立虛擬機那樣隨便折騰。我在做網(wǎng)絡(luò)抓包相關(guān)實驗的時候就撞到過這個邊界后來只能在實例層面調(diào)整容器內(nèi)部改不動。理解這三層之后很多為什么這個功能在別處能用、在這里不行的疑問就有答案了不是工具壞了是它站在了不同的隔離層級上。1.2 與桌面版容器工具的實際差異對照很多人第一反應(yīng)是我桌面上的容器工具不是挺好用嗎為什么要換。這個問題問得對我一開始也這么想。差異不在功能多少而在鏈路上多了什么、少了什么。我把自己實際用下來的對比整理成了一張表都是日常會碰到的場景對比維度桌面版容器工具wslc后臺常駐服務(wù)需要獨立服務(wù)進程開機自啟依附 WSL 實例無常駐守護進程首次啟動耗時數(shù)十秒冷啟動更久通常 1~3 秒與 Linux 側(cè)文件系統(tǒng)交互跨文件系統(tǒng)邊界大量小文件讀寫明顯變慢容器與實例同一文件系統(tǒng)接近原生命令行一致性命令可用但部分行為經(jīng)過封裝轉(zhuǎn)換命令語義貼近 Linux 原生圖形化管理有完整界面以命令行和配置文件為主資源占用固定預(yù)留內(nèi)存不易按需回收按需分配空閑時占用低與腳本、流水線對齊需要額外適配層腳本可直接復(fù)用這張表里最值得說的是第三行和第五行??缥募到y(tǒng)這件事表面上看只是慢一點實際影響的是整個開發(fā)循環(huán)的體感。我曾經(jīng)在一個包含幾萬個依賴文件的前端項目上做過對比同樣的安裝依賴步驟跨邊界方案要六分多鐘同文件系統(tǒng)內(nèi)不到一分半。這種差距不是優(yōu)化能補的是架構(gòu)決定的。反過來說圖形界面這一項確實是短板。如果你的工作流高度依賴點選、看面板、拖拽管理鏡像那 wslc 會讓你不適應(yīng)。但對大多數(shù)把命令寫進腳本、把步驟寫進文檔的人來說命令行反而是優(yōu)勢——可復(fù)制、可版本化、可審查。1.3 適合遷移與不適合遷移的項目類型不是所有項目都值得遷。我的判斷標準很簡單看這個項目里容器是主角還是配角。如果容器是主角——比如你在做微服務(wù)拆分、需要本地起三四個服務(wù)互相調(diào)用、需要精確控制運行時依賴版本——那 wslc 很合適。它啟動快意味著你可以頻繁銷毀重建把環(huán)境不一致這個老問題從根上掐掉。我現(xiàn)在做聯(lián)調(diào)習(xí)慣是每次拉最新代碼后直接把舊容器刪掉重起成本幾乎為零這在小規(guī)模項目里是很奢侈的體驗。如果容器是配角——比如你只是偶爾需要一個特定版本的解釋器跑一下腳本——那我建議你直接用 WSL 發(fā)行版實例里裝的解釋器別上容器。多一層封裝就多一層解釋成本出了問題還要判斷是容器的問題還是實例的問題。還有一類要格外謹慎需要內(nèi)核級特性的場景比如自定義網(wǎng)絡(luò)棧、需要加載特定內(nèi)核模塊、需要完整 systemd 行為的。這些在共享內(nèi)核模型下都有邊界不是不能做是要額外折騰投入產(chǎn)出比不劃算。我一般遇到這類需求就直接退回虛擬機別硬扛。2. 裝之前先把環(huán)境賬算清楚功能啟用順序與版本核對2.1 硬件與系統(tǒng)版本的門檻確認安裝失敗最常見的原因不是命令敲錯了是前置條件沒滿足。動手之前有兩件事必須先確認。第一件是硬件虛擬化。這一項在任務(wù)管理器的性能頁里能看到標著虛擬化已啟用就對了。如果顯示已禁用得進固件設(shè)置里打開。這一步我吃過虧——有臺機器裝完一切正常唯獨容器啟動后立刻退出日志還是空的排查了兩個小時才發(fā)現(xiàn)是虛擬化沒開。因為部分功能在虛擬化關(guān)閉時仍然能裝、能跑命令只是容器一啟動就死報錯還特別隱晦。第二件是系統(tǒng)版本。WSL 的容器能力是跟著 WSL 版本走的不是跟著系統(tǒng)大版本走的。你得先確認當(dāng)前的 WSL 版本足夠新用這條命令看wsl --version輸出里會列出 WSL 版本、內(nèi)核版本、以及 WSLg 之類的組件版本。如果這條命令直接報無法識別說明你的環(huán)境還停留在靠系統(tǒng)組件提供 WSL 的舊形態(tài)需要先升級到基于應(yīng)用包分發(fā)的新形態(tài)再談容器能力。這個升級動作本身很輕通常一條命令加一次重啟但順序不能反——先升 WSL再裝 wslc。我建議把版本號記下來寫在項目文檔的環(huán)境要求里。原因是 wslc 目前還在快速迭代不同版本之間命令名、參數(shù)名、默認行為都可能變。我在兩個不同版本的機器上執(zhí)行同一條命令輸出格式就不一樣。把版本釘住出問題時才有對照基準。2.2 可選功能啟用的先后順序與重啟節(jié)奏Windows 的可選功能有依賴關(guān)系順序錯了會出現(xiàn)啟用成功但實際不生效的假象。我總結(jié)的順序是先啟用虛擬機平臺相關(guān)功能再啟用子系統(tǒng)相關(guān)功能最后確認默認版本指向。具體操作用管理員權(quán)限打開終端# 第一步啟用虛擬機平臺能力這是容器運行的基礎(chǔ) dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart # 第二步啟用 Linux 子系統(tǒng)能力 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart # 第三步統(tǒng)一重啟不要中途重啟 shutdown /r /t 0我特意把兩步寫在一起、最后統(tǒng)一重啟是因為分兩次重啟很浪費時間而且第二步在某些系統(tǒng)上會提示需要重啟才能繼續(xù)容易讓人誤以為第一步失敗了。重啟之后把默認版本設(shè)為 2wsl --set-default-version 2這一步的意義在于容器能力依賴的是 WSL 2 的輕量虛擬化架構(gòu)版本 1 是不行的。如果你之前裝過舊版發(fā)行版它們可能還停留在版本 1需要單獨轉(zhuǎn)換wsl --list --verbose wsl --set-version 發(fā)行版名稱 2轉(zhuǎn)換過程會重建文件系統(tǒng)耗時取決于里面有多少文件。我有次在一個塞了幾十 G 依賴的實例上做轉(zhuǎn)換等了將近十分鐘中途一度以為卡死了。實際上它在正常干活別中斷。2.3 安裝本體與首次初始化前置條件齊了安裝本體本身反而最簡單。按應(yīng)用包分發(fā)的形態(tài)可以直接用包管理工具裝winget install --id Microsoft.WSL -e裝完再用wsl --version確認一遍版本號應(yīng)該比之前新。如果你所在的環(huán)境不方便聯(lián)網(wǎng)也可以下載離線包手動安裝思路一樣注意包的架構(gòu)要和系統(tǒng)匹配多數(shù)機器是 x64部分輕薄本可能是 ARM 架構(gòu)裝錯了會提示不兼容。wslc 的命令行入口通常在 WSL 升級后一并提供可以在 WSL 實例里直接調(diào)用wslc --help如果這條命令提示找不到有兩種可能一是 WSL 版本還不夠新二是不在 WSL 實例里執(zhí)行。注意wslc 的命令要在 WSL 實例內(nèi)部執(zhí)行而不是在 Windows 側(cè)的 PowerShell 里執(zhí)行。這一點和很多人習(xí)慣的在 PowerShell 里敲 wsl 加參數(shù)不同容易混淆。我自己的習(xí)慣是先wsl進實例再在實例里操作路徑清晰。首次運行會做一次初始化檢查運行環(huán)境、準備存儲目錄、注冊默認網(wǎng)絡(luò)配置。這個過程通常幾秒鐘屏幕上會打印一些檢查項。我建議把這段輸出完整看一遍它列出的每一項都是后面排障的線索。有一次我跳過沒看后面遇到網(wǎng)絡(luò)不通回頭才發(fā)現(xiàn)初始化時就已經(jīng)提示某組件未就緒。2.4 三步驗證法判斷裝上了和能用了裝完不等于能用。我用一套三步驗證法逐層排除問題第一步驗證命令行入口。執(zhí)行wslc version或wslc --version能打印出版本信息說明二進制在、路徑對。第二步驗證運行能力。拉一個最小的基礎(chǔ)鏡像并跑一條命令wslc pull alpine:latest wslc run --rm alpine:latest echo container ok看到輸出container ok就說明鏡像拉取、容器創(chuàng)建、進程執(zhí)行這條鏈路通了。這一步失敗問題通常出在鏡像拉取或者存儲權(quán)限上。第三步驗證網(wǎng)絡(luò)與文件系統(tǒng)。跑一個帶端口映射的服務(wù)同時掛一個目錄進去wslc run --rm -d --name probe -p 8080:80 -v /tmp/probe:/usr/share/nginx/html nginx:alpine curl -s http://localhost:8080如果 curl 能拿到頁面內(nèi)容說明端口映射和掛載都正常。三步都過環(huán)境就算真正可用了。這套驗證我建議存成一個腳本換機器、升級版本之后都跑一遍比憑感覺判斷靠譜得多。3. 第一個容器跑通從拉鏡像到端口映射的完整鏈路3.1 鏡像從哪來、存在哪鏡像的來源和存放位置這兩件事看起來是細節(jié)實際決定了很多為什么磁盤好像不夠用了的困惑。來源默認是公共鏡像倉庫。wslc pull會按名稱去拉取格式是倉庫地址/命名空間/鏡像名:標簽。標簽不寫默認取latest而latest這個東西在生產(chǎn)里是災(zāi)難——你今天拉的latest和上周拉的latest可能完全是兩份不同的東西。我的做法是始終顯式寫版本標簽?zāi)呐聦憘€alpine:3.20這種也比latest強。存放位置上鏡像和解壓后的層都落在 WSL 實例的虛擬磁盤文件里不是散落在 Windows 的某個目錄。這個設(shè)計帶來兩個后果一是你在 Windows 資源管理器里看不到鏡像文件別去那兒找二是磁盤占用會整體體現(xiàn)在那個虛擬磁盤文件的大小上而虛擬磁盤文件有個特點——只增不減。刪掉鏡像占用空間不一定立刻還給系統(tǒng)需要額外做一次壓縮。查看當(dāng)前有哪些鏡像、占了多少wslc images wslc system dfimages列的是鏡像清單system df給的是匯總賬包括鏡像、容器、構(gòu)建緩存各占多少。我第一次跑df的時候被構(gòu)建緩存那一欄驚到了——緩存比鏡像本身還大。后面專門講清理。3.2 運行、進入、退出的正確姿勢跑容器有兩種典型用法一種是執(zhí)行一次性命令一種是進交互式 shell。前者用wslc run --rm alpine:latest ls /etc--rm的意思是容器退出后自動刪除不留垃圾。這個參數(shù)在跑一次性命令時幾乎必加否則你會發(fā)現(xiàn)wslc ps -a里堆了幾十個已退出的容器。后者是進 shellwslc run --rm -it alpine:latest /bin/sh-i保持標準輸入打開-t分配一個偽終端。這兩個參數(shù)少一個都會出問題只加-i你在 shell 里看不到提示符輸入也沒回顯只加-t某些交互程序會立刻退出。我一開始圖省事只加了-it里的一個折騰半天以為是鏡像壞了。進出容器還有一條更省事的路徑就是對已經(jīng)跑起來的容器執(zhí)行命令不必新開wslc exec -it 容器名 /bin/sh退出交互式 shell 用exit或者 CtrlD。這里有個容易忽略的點如果你是用wslc run -it起的容器并且沒加--rm退出后容器處于停止狀態(tài)想再進去要wslc start再exec。而加了--rm的容器退出即消失數(shù)據(jù)也不留。取舍看你是在調(diào)試還是在跑服務(wù)。3.3 端口映射與宿主機訪問路徑端口映射的寫法是-p 宿主端口:容器端口。這里有個認知需要糾正映射之后你在 Windows 側(cè)的瀏覽器里訪問localhost:宿主端口是能通的不需要知道 WSL 實例的 IP。這是 WSL 網(wǎng)絡(luò)特性帶來的便利很多人不知道還在費勁查實例 IP。但如果你的服務(wù)又需要被局域網(wǎng)里其他機器訪問情況就復(fù)雜了。默認情況下映射出來的端口只在本機回環(huán)地址上監(jiān)聽局域網(wǎng)訪問不到。這需要在實例層面調(diào)整網(wǎng)絡(luò)模式屬于進階配置我一般不輕易動因為改了之后本機的訪問路徑也可能跟著變等于拆東墻補西墻。多端口映射就重復(fù)寫-pwslc run --rm -d --name svc \ -p 8080:80 \ -p 8443:443 \ nginx:alpine容器端口那側(cè)必須是容器內(nèi)實際監(jiān)聽的端口寫錯了不會報錯只會一直連不上。我遇到過一次服務(wù)配置里監(jiān)聽的是 8080我映射的是 80查了半小時網(wǎng)絡(luò)配置最后發(fā)現(xiàn)是端口對不上。現(xiàn)在的習(xí)慣是起完容器先wslc logs看一眼啟動日志確認服務(wù)真正監(jiān)聽在哪個端口再決定映射。3.4 掛載Windows 路徑與 Linux 路徑的映射陷阱掛載是最容易出問題的地方?jīng)]有之一。核心矛盾在于容器的視角是 Linux 文件系統(tǒng)而你手上的代碼在 Windows 盤上中間隔著一層路徑翻譯。先說路徑寫法。在 WSL 實例里Windows 的 C 盤被掛在/mnt/c所以你寫掛載源要用這個形式wslc run --rm -it -v /mnt/c/Users/me/project:/work alpine:latest /bin/sh看起來簡單但坑在權(quán)限上。通過/mnt/c掛進去的文件容器里看到的屬主和權(quán)限是由掛載層決定的不是原文件的真實屬性。結(jié)果就是容器里的非 root 用戶讀不了文件或者寫出來的文件在 Windows 側(cè)顯示權(quán)限異常。我遇到過幾次構(gòu)建過程報權(quán)限被拒絕最后定位到都是這個原因。繞開的方法有兩個。一是在容器里用 root 跑簡單粗暴但會帶來產(chǎn)物權(quán)限問題二是把項目代碼放到 WSL 實例自己的文件系統(tǒng)里比如/home/用戶名/project從這里掛載進去權(quán)限語義就正常了。我現(xiàn)在統(tǒng)一用第二種雖然要多一步復(fù)制但省下的排障時間遠超那點復(fù)制成本。還有一個隱蔽的陷阱是路徑大小寫。Windows 文件系統(tǒng)不區(qū)分大小寫Linux 區(qū)分。你的代碼里寫了import Config文件實際叫config.js在 Windows 上跑得好好的一進容器就報找不到模塊。這類問題在掛載/mnt/c時尤其容易冒出來因為掛載層會盡量兼容但容器內(nèi)的應(yīng)用未必買賬。構(gòu)建上下文同理后面還會提到。4. 自建鏡像構(gòu)建上下文、緩存層與報錯對照4.1 構(gòu)建上下文與大小寫敏感的坑構(gòu)建鏡像時wslc build會把指定的目錄作為上下文打包送進構(gòu)建過程。這里第一個決策點是上下文給多大。給整個項目根目錄是最常見的做法但如果根目錄下有node_modules、.git、構(gòu)建產(chǎn)物這類巨型目錄打包和傳輸會非常慢。解決辦法是寫一個忽略文件把不需要的路徑排掉# .dockerignore node_modules .git dist *.log這份忽略文件帶來的提速是數(shù)量級的。我在一個中等規(guī)模項目上做過對比加了忽略文件后構(gòu)建啟動時間從四十多秒降到三秒。原因很簡單上下文打包是同步操作文件越多越慢而且這些文件根本不會在構(gòu)建里用到。第二個決策點是路徑大小寫。構(gòu)建過程中的路徑解析遵循 Linux 規(guī)則嚴格區(qū)分大小寫。如果你的COPY指令寫的是COPY ./Src ./app而實際目錄叫src構(gòu)建會直接失敗并報找不到文件。這在從 Windows 遷移過來的項目里極其常見因為本地開發(fā)根本感知不到這個問題。我的處理辦法是在構(gòu)建前跑一遍文件名清單和 Dockerfile 里的指令逐條比對。聽起來笨但比反復(fù)構(gòu)建試錯快。4.2 多階段構(gòu)建與層緩存復(fù)用多階段構(gòu)建是控制鏡像體積最有效的手段邏輯是把編譯和運行拆成兩個階段只把編譯產(chǎn)物帶進最終鏡像。# 階段一構(gòu)建 FROM node:20-alpine AS builder WORKDIR /src COPY package*.json ./ RUN npm ci COPY . . RUN npm run build # 階段二運行 FROM node:20-alpine WORKDIR /app COPY --frombuilder /src/dist ./dist COPY --frombuilder /src/node_modules ./node_modules EXPOSE 3000 CMD [node, dist/main.js]這樣寫的好處是最終鏡像里不含源碼、不含編譯工具鏈體積能小一半以上。我做過一個對照單階段鏡像 1.1G多階段降到 420M。層緩存的復(fù)用規(guī)則要理解清楚每條指令生成一層某層失效它之后的所有層都要重建。所以指令順序很關(guān)鍵——變化頻率低的東西放前面變化頻率高的放后面。上面的例子里先COPY package*.json再npm ci最后才COPY . .就是為了讓依賴安裝這一層在源碼變動時仍然命中緩存。如果順序反過來每次改一行代碼都要重裝一遍依賴構(gòu)建時間從十幾秒變成幾分鐘。這里有個實操細節(jié)npm ci比npm install更適合構(gòu)建場景因為它嚴格按鎖文件安裝結(jié)果可復(fù)現(xiàn)而且不會因為版本范圍匹配到新版本。這一點在流水線上尤其重要我遇到過因為依賴小版本升級導(dǎo)致構(gòu)建產(chǎn)物行為變化的事故換成ci之后這類問題基本消失。4.3 構(gòu)建失敗報錯對照表構(gòu)建報錯的信息量往往不大得靠經(jīng)驗對照。我把常遇到的幾類整理成表報錯關(guān)鍵詞大概率原因處理方向failed to compute cache key/not foundCOPY 源路徑寫錯或大小寫不匹配核對上下文內(nèi)實際路徑與大小寫permission denied掛載目錄權(quán)限語義異?;蛉萜鲀?nèi)用戶無權(quán)限改用實例內(nèi)路徑作為上下文或調(diào)整運行用戶no space left on device虛擬磁盤空間耗盡或構(gòu)建緩存堆積清理緩存與懸空鏡像必要時壓縮磁盤exec format error鏡像架構(gòu)與當(dāng)前平臺不匹配確認拉取的鏡像架構(gòu)標簽network timeout/connection reset拉取基礎(chǔ)鏡像或依賴時網(wǎng)絡(luò)中斷改用離線導(dǎo)入或重試并延長超時exit code: 137進程被強制終止通常是內(nèi)存不足提高實例內(nèi)存上限或優(yōu)化構(gòu)建內(nèi)存占用表里最容易被誤判的是exit code: 137。很多人第一反應(yīng)是命令寫錯了實際上是內(nèi)存超限被殺。構(gòu)建大型前端項目時尤其常見因為打包過程會吃很多內(nèi)存。我現(xiàn)在的做法是給實例分配足夠內(nèi)存同時在構(gòu)建命令里限制并發(fā)用時間換空間。exec format error也值得單獨說。如果你在 ARM 架構(gòu)的機器上拉了一個只為 x86 構(gòu)建的鏡像就會撞到這個錯。報錯信息不會告訴你架構(gòu)不匹配只會說格式錯誤很容易往別處想。確認方法是在拉取時顯式指定架構(gòu)標簽或者查一下鏡像支持的平臺列表。5. 排障實錄五個報錯從現(xiàn)象追到根因5.1 容器啟動即退出日志一片空白現(xiàn)象wslc run -d之后wslc ps里看不到容器wslc ps -a能看到狀態(tài)是Exited (0)wslc logs什么都沒輸出。這條鏈路我是這么走的。第一步確認容器是不是真的執(zhí)行了命令。用wslc inspect看容器的配置重點看Cmd和Entrypoint字段。有次發(fā)現(xiàn)鏡像里定義的入口腳本路徑不對容器啟動后找不到命令直接以 0 退出日志自然是空的。第二步如果命令沒問題就換成前臺模式跑把輸出直接打到終端wslc run --rm -it 鏡像 /bin/sh能進 shell 說明鏡像本身沒壞問題在啟動命令上。這時候手動執(zhí)行一遍原來的入口命令報錯就出來了。第三步如果連 shell 都進不去那就是鏡像或者運行時的問題。檢查wslc images里鏡像大小是否異常偏小——偏小通常意味著拉取中斷層不完整。刪掉重新拉一次。我在這個問題上最深刻的一次教訓(xùn)是日志空白不等于沒有錯誤很多時候是錯誤發(fā)生在日志系統(tǒng)就緒之前。這時候inspect和前臺運行比logs有用得多。5.2 端口被占用卻找不到進程現(xiàn)象啟動容器報port is already allocated但用netstat查那個端口什么也沒查到。根因通常有兩層。第一層是停止狀態(tài)的容器仍然占著端口記錄。wslc ps -a會列出所有容器包括已經(jīng)退出的那些如果某個已退出的容器曾經(jīng)映射過這個端口記錄可能還在。處理辦法是把它徹底刪掉wslc rm -f 容器名第二層是實例內(nèi)的其他進程占了端口但你在 Windows 側(cè)的 netstat 里看不到因為那是實例內(nèi)部的網(wǎng)絡(luò)命名空間。查這個要在實例里執(zhí)行ss -lntp | grep 8080我有一次就是卡在第二層在 Windows 側(cè)查了半天沒結(jié)果進實例一查是個之前遺留的服務(wù)進程還掛著。殺掉之后立刻正常。順著這個思路還能推出一條經(jīng)驗端口沖突類問題永遠先在容器和實例這兩個層面查別一上來就懷疑系統(tǒng)。跨層的進程視圖不互通是這類問題的最大迷惑源。5.3 掛載后文件權(quán)限被改寫現(xiàn)象容器內(nèi)向掛載目錄寫文件寫出來的文件在 Windows 側(cè)打開提示權(quán)限異常或者容器內(nèi)的服務(wù)進程報無權(quán)寫入。前面提過根因在掛載層的權(quán)限映射。這里補充具體的定位方法。先在容器內(nèi)看文件的實際屬主ls -ln /work如果顯示的數(shù)字 UID 和容器內(nèi)運行用戶的 UID 對不上就是這個原因。解決辦法分兩種場景一種是開發(fā)調(diào)試圖省事直接在運行命令里指定用戶wslc run --rm -it --user $(id -u):$(id -g) -v /home/me/project:/work alpine:latest /bin/sh這樣容器內(nèi)進程的 UID 和掛載源屬主一致讀寫就不會沖突。另一種是構(gòu)建產(chǎn)物場景需要產(chǎn)物在 Windows 側(cè)能正常使用。這時候更穩(wěn)的做法是把構(gòu)建過程放在實例內(nèi)的路徑下完成最后再復(fù)制到 Windows 盤而不是直接往/mnt/c下寫。多一步復(fù)制省掉一堆權(quán)限糾紛。5.4 磁盤占用暴漲現(xiàn)象用了一陣子虛擬磁盤文件漲到幾十 G刪了鏡像也沒見變小。這里要理解虛擬磁盤的分配機制它是按需增長的增長后不會自動收縮。刪文件只是把塊標記為空閑文件本身的大小不變。所以要分兩步處理。第一步清掉容器側(cè)的無用數(shù)據(jù)wslc system prune -a --volumes這條命令會刪除所有停止的容器、未被引用的鏡像、構(gòu)建緩存和未使用的數(shù)據(jù)卷。執(zhí)行前務(wù)必確認沒有還需要的東西——它不給撤銷機會。我第一次跑的時候手快把一個還在調(diào)試的容器刪了只能重來。第二步如果文件仍然很大做一次磁盤壓縮。先關(guān)閉所有實例再用系統(tǒng)工具壓縮虛擬磁盤文件。這一步耗時較長取決于磁盤大小我一般放在下班前跑。日常預(yù)防更有效定期跑wslc system df看賬構(gòu)建緩存那一欄超過幾 G 就清一次。養(yǎng)成這個習(xí)慣之后我的磁盤再沒暴漲過。5.5 鏡像拉取超時的離線解法現(xiàn)象wslc pull卡住或者超時重試幾次都不行。網(wǎng)絡(luò)鏈路的排查我這里不多展開重點說一條更可靠的替代路徑離線導(dǎo)入。思路是在能正常訪問的環(huán)境里把鏡像導(dǎo)出成文件再拷到目標機器導(dǎo)入。# 在可用環(huán)境導(dǎo)出 wslc pull nginx:alpine wslc save -o nginx-alpine.tar nginx:alpine # 在目標環(huán)境導(dǎo)入 wslc load -i nginx-alpine.tar這條路徑的好處是完全不依賴構(gòu)建時的網(wǎng)絡(luò)適合內(nèi)網(wǎng)環(huán)境、演示現(xiàn)場這類網(wǎng)絡(luò)不確定的場景。代價是文件體積大傳輸要花時間。我現(xiàn)在的習(xí)慣是給常用基礎(chǔ)鏡像準備一份離線包放在本地目錄里新機器上手先導(dǎo)入再慢慢拉其他東西。導(dǎo)出的時候注意別把一堆無關(guān)鏡像打進去save是按鏡像逐個導(dǎo)的多寫幾個鏡像名會打成一個包體積翻倍。6. 長期用下去資源邊界、清理節(jié)奏與工作流融合6.1 內(nèi)存和 CPU 的分配邊界WSL 實例默認會按需吃內(nèi)存理論上限可以到宿主內(nèi)存的一多半。這在跑容器時會出問題構(gòu)建一個大項目把內(nèi)存吃滿宿主開始卡頓甚至觸發(fā)系統(tǒng)級別的內(nèi)存回收構(gòu)建進程被殺報一個毫無信息量的退出碼。控制辦法是寫一個配置文件給實例設(shè)上限。配置文件放在用戶目錄下內(nèi)容大致是[wsl2] memory8GB processors4 swap2GB數(shù)字按機器實際情況定。我的一般原則是給實例分配宿主內(nèi)存的一半處理器核數(shù)不超過物理核數(shù)減二留出余量給宿主側(cè)。這樣既夠容器跑又不至于把機器拖死。改完配置要重啟實例才生效wsl --shutdown這條命令會關(guān)閉所有實例包括正在跑容器的那些執(zhí)行前記得保存工作。另一個容易被忽略的點是交換空間。設(shè)了 swap 之后內(nèi)存壓力大時不會立刻殺進程而是換到磁盤。代價是變慢。我在構(gòu)建場景下會關(guān)掉 swap讓內(nèi)存不足直接暴露出來比默默變慢好排查。6.2 清理節(jié)奏鏡像、容器、構(gòu)建緩存清理這件事與其等磁盤告警再動手不如定個節(jié)奏。我的做法是分三檔日常檔每次調(diào)試結(jié)束跑一次輕量清理刪掉退出狀態(tài)的容器wslc container prune -f周檔清一次構(gòu)建緩存和懸空鏡像wslc image prune -f wslc builder prune -f月檔做一次全面盤點和磁盤壓縮。先看賬wslc system df然后按需清理最后壓縮虛擬磁盤文件。這里有個經(jīng)驗不要用刪了再說的心態(tài)清理。每次清理前先wslc images看一眼清單確認沒有正在依賴的鏡像是懸空狀態(tài)——有些鏡像雖然當(dāng)前沒有容器引用但你可能下周還要用刪了還得重新拉。我吃過一次虧清理完第二天要演示結(jié)果鏡像沒了現(xiàn)場等了兩分鐘拉取非常尷尬。現(xiàn)在我給常用鏡像打上明確標簽清理時按標簽排除。6.3 與編輯器、腳本、流水線的銜接工具裝好只是開始真正提升效率的是把它嵌進日常流程。編輯器側(cè)主流編輯器都有連接 WSL 實例的能力連上之后終端、文件瀏覽、調(diào)試都在實例內(nèi)進行容器操作可以直接在集成終端里敲。這樣省掉了來回切窗口的動作也避免了路徑寫錯。腳本側(cè)我把高頻命令收進一個入口腳本參數(shù)化處理。比如一個dev.sh接up、down、logs、rebuild四個子命令內(nèi)部封裝對應(yīng)的wslc調(diào)用。好處是團隊里每個人敲的命令一樣不會出現(xiàn)你這臺機器上是這么跑的這種分歧。#!/usr/bin/env bash set -euo pipefail case ${1:-} in up) wslc run -d --name app -p 3000:3000 -v $PWD:/app app:dev ;; down) wslc rm -f app ;; logs) wslc logs -f app ;; rebuild) wslc build -t app:dev . ;; *) echo usage: $0 {up|down|logs|rebuild} exit 1 ;; esacset -euo pipefail這行別省它能讓腳本在任一步失敗時立刻停下而不是帶著錯誤狀態(tài)繼續(xù)往下跑。我早期寫的腳本沒加這行出現(xiàn)過構(gòu)建失敗但容器還是啟動了舊鏡像的假成功排查起來很費勁。流水線側(cè)關(guān)鍵在于本地和遠端的構(gòu)建方式保持一致。既然本地用 wslc 構(gòu)建那構(gòu)建文件本身就得是標準格式不要摻入本地特有的路徑或參數(shù)。這一點做到了本地能過的構(gòu)建換到別的環(huán)境大概率也能過。6.4 升級與回滾的注意點wslc 還在演進升級是常態(tài)。升級前有兩件事要做一是記下當(dāng)前版本號二是確認關(guān)鍵鏡像和數(shù)據(jù)卷有備份或者能重建。版本號記錄很簡單wslc version把它寫進項目文檔的環(huán)境說明里。出問題時這個數(shù)字是你判斷是不是版本變化導(dǎo)致的的第一依據(jù)。數(shù)據(jù)方面容器本身是無狀態(tài)的刪了能重建真正要保的是數(shù)據(jù)卷和自定義鏡像。數(shù)據(jù)卷可以導(dǎo)出成歸檔文件自定義鏡像可以用save導(dǎo)成 tar 包。我一般在下一次大版本升級前做一次這兩個動作成本幾分鐘換來的是可以隨時回退。升級之后別急著干活先跑一遍第 2.4 節(jié)那套三步驗證。我遇到過一次升級后端口映射行為變化驗證時發(fā)現(xiàn)了沒影響到正式使用。如果不驗證直接上很可能在關(guān)鍵時刻才發(fā)現(xiàn)問題?;貪L的路徑要提前想好。如果升級后出現(xiàn)無法繞過的問題卸載新版、裝回舊版、重新導(dǎo)入鏡像和數(shù)據(jù)這條鏈路能不能走通最好在不出問題的時候演練一次。聽起來麻煩但真出事的時候手上有演練過的步驟和現(xiàn)場現(xiàn)編步驟是完全兩種體驗。最后分享一個我自己養(yǎng)成的小習(xí)慣每次環(huán)境有較大變動升級、改配置、換機器就在項目文檔里加一行變更記錄寫上日期、做了什么、驗證結(jié)果。幾個月后回頭看這些記錄能幫你快速定位這個環(huán)境是從什么時候開始不一樣的。這個東西不花時間但價值很高。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
91精品啪在线观看国产城中村| 大香交| 欧美九九九九九| 日本免费中文字幕在线| 国产九九九九九九| 26uuu久久| 色综合一本| 中文字幕日韩专区精品系列| 思思热在线cao| 五月综合久久| 91精品人妻电影| 亚州一区二区成人片免费| 欧插网站| 中国操逼无码| 素颜老阿姨乱情色| 嫩草一区二区在线观看| 青青欧洲黑| 内射夫妻三片| 殴美色网| 神马福利久草| 一本精品日本在线视频精品| 欧美色图亚洲色图成人在在线| 放黄片放3级黄片没穿衣服| 加勒比东京热五月天天堂网| 日韩福利电影网| 色在线69堂| av情色影音| 啪啪91| 青娱乐欧美激情一区二区| 91九色丨风韵犹存| 超碰97国产欧美| 青青草乱入乱欲视频在线观看| 五月婷婷六月丁香| 婷婷大香蕉| 五月天婷婷色色| 强奸乱伦麻豆| 全球成人中文在线| 日韩999| av资源在线观看少妇| 欧亚性爱视频免费看| 日韩国产乱子伦App| 国产欧美日韩一区二区三区| 黄色视频特级毛片| 五月天激情四射| 91GD.COM| 亚洲国产剧情少妇激情| 97频视在线| 国产和美国毛片| 人人妻人人色一区二区三区| 欧美日韩制服| 国产精品黑人一区二区三区| 亚洲 国产 精品一区| 国产精品一区二区三区,亚洲综合| 天天干天天操天天干天天操| 精品久久視頻在线| 青草视频人妻在线观看| 97免费视频在线| 国产午夜精品在线观看| 日韩Va亚洲va欧美Ⅴa久久| 亚洲一区二区三区AV无码| 亚洲AV成人在线| 嗯阿好爽好紧| 后入式免费视频| 日韩99精品视频综合区| 久久久无码国精品无码三区三区| 久久久久久久久久精| 97国产|免费| h4610国产人妻| 女人天堂AV五区在线| 蜜桃香蕉久草精品在线| 性色av蜜臀av色欲aV| 超碰79人人乐| 九九热精品| 亚洲av影院在线观看| 大鸡巴久久久| 亚洲中文字幕在线视频一区二区| 五月婷在线| 久久国产精品视频| 国产精品无码AV网站| 97伪v| 操b在线观看| 天天肏美女| 国色综合天| 久久草在线综合视频| 好好的日:com久久九九| 白丝被操91| 青青草亚洲一区| 日韩成人高清一区二区| JULIA人妻风俗店中出电影| 超碰99re| 啊啊啊啊啊啊啊好爽不要| 国产偷拍网站| 国产视频一区二区三区在线免费观看| 久久久久久九九九| 乱伦熟女区| 色吊丝 日日骚 清纯唯美| 91丨豆花丨熟女| 破处bbq| 亚洲色欧| 欧美色图片| 一级人妻性爱视频| 欧美aaaaaaa| 日本福利二区视频| 夜色五月天| 成人久久久| 极品出轨视频网站| 天天久久久久久| 亚洲啪啪综合?v一区综合精品区| 亚洲中文字幕在现观看| 色香在线| 人妻色偷色噜| 亚洲欧美一区二区三区一猛片| 99精品久久久久久| 色综合20p| 素人播放一区| 蜜桃臀av在线观看| 亚洲视频二区 | 上海一级黄片| 美女极品一区二区三区| AV九九| 欧美白嫩在线放| 欧美亚洲中文字幕| 亚洲人妻一区二区三区| 手机在线大香蕉| 91国产美女丝袜足交精品视频| 久久久久九九九| 亚洲在线91| 国产精品一区二区三区在线| 一区二三区四区视频大全套| 狠狠搞 亚洲91| 91xingse| 色综合加勒比四四季| AV大香蕉| 高潮内射在线| 97碰碰日本乱偷人妻中文的| 欧美在线大香蕉| 天天碰操中国年青熟妇| 日韩9999| 蜜桃午夜视频一区二区| 亚洲不雅视频1区二区| 欧美日韩亚洲少妇寂寞影院正在播放 | 操操逼操操逼操操逼逼| 久久九九视频九九视频| 激情小说成人日本无码一| 夜夜天天噜狠狠爱2021| 成人网址在线观看| 国产青视频| 97超碰总站| 欧美论理片| 天天操天天7| 97 国产精品| 色网站导航大全| 亚洲人妻久久| 欧美精品99久久久**| 中文字幕一二区二三区人妻专区| 亚洲成?V人片在线观看福利| 91丨九色丨国产打屁股| 色欲人妻一区二区在线| 超碰9 7女人| 78精品| 午夜无遮挡男女啪啪视频| 国产av又色又爽又黄| 婷婷五月丁香五月| 欧美久久婷婷| 操国产高清| 可以在线观看AV的网站| 国产四虎在线| 后入式免费视频| 欧美亚洲一级在线观看| 亚洲丝袜色| 综合av影片| 亚洲色图欧美色图另类图片| 日韩乱伦视频| 国产精品久久久777| 欧美色图20P| 欧美一区二区日韩三区| 超碰公开久久网| 日日骚av| 静品嫩模一区二区| 97精品在线| 欧美黄片免费在线观看视频| 嗯嗯啊操我| 加勒比99999| 在线观看亚洲专区| 欧美视频激情久久久久久| 午夜精品久久一区二区| 亚洲综合色网| 免费精品无码一级毛片牛牛影视 | 激情婷婷丁香网| 隔壁邻居波多野结衣中文字幕| 你操综合| 超碰97人人cao| 99r九九| 日本淫乱女一区二区三区视频| 久久久婷| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 天天拍天| 成人综合久久精品色婷婷| 色香伊人| 超碰av在线| 人人妻人人爽| 啊视频在线| 亚洲美欧999| 尤物黄色在线观看网站| 欧美亚洲高清晰| 天天日天天插| 精品国产91av一区二区三区 | 九草九九九| 人妻熟女av国产网站| 密臀成人视频久久久| 人妻熟女午夜精品在线| 欧美色997| 日韩久射综合| 久操视频在线观看| 亚洲精品一区二区三区新线路| 97天天摸天天爽| 亚洲吊色| 97操综合| 60秒不遮不挡| 国产一区二区三区免费视频在性观看| 久久久久久久九九九九九九| 亚洲av影音先锋| 99色色| 久久亚洲不卡一区二区三区| 精品一区二区久久| 国产精品久久久| 麻豆视频国产一区二区| 欧美劲爆视频一区二区| 国模限制级电影| 超碰69| 欧美综合网| aaaa少妇高潮大片| 欧美九九爱| 婷婷精品国产欧美精品亚洲人人爽| 久久亚洲日韩熟女精品| 欧美偷拍区| 99热啪啪| 国产蜜臀在线| 免费人成在线观看网站品爱网| 国产伦乱91| 日韩美女,国产传媒,视频一区| 国产精品丝袜在线| 亚洲精品亚洲人成在线麻豆| 丝袜喷水在线| 试看60秒 爽| 五月香婷婷| 99在线啪| 九月丁香婷婷色| 超碰在线人妻不卡| 亚洲成人精品在线一区| 淫妻综合网| 水滴偷拍| 99热精品在线| 人人妻人人爽| 国产精品一二三区福利| 可乐操在线| 九九九久| 欧美变态激情网| 囯产乱伦一区二区三女| 女性91网站| 蜜桃精品视频一区二区三区| 午夜大香蕉| 亚州免费啪啪视频| 久操精品| 在线洲亚线| 十八禁一区二区无码观看| 男人天堂久久精品不卡| 久久夜嗨| av日韩中文字幕| 中文字幕少妇色 | 果冻传媒A片一二三区| 精品人妻1237| 一区麻豆 高清中文字幕| 天堂日本亚洲欧美| 蜜臀AV成人精品蜜臀AV久久| 国产亚洲 中文欧美久久| 九九九九九九九精品视频| 天天日B夜夜干B时时操B| 狠狠躁久久躁| 99久久精品无码一区二区毛片免费| 99精品在线观看| 97久操| 五月丁香激情综合| 91中文字幕制服丝袜免费视频| 日韩久久激情精品| 青青久日| 国内91熟女人妻丝袜天天精品视频在线 | 黑操B| 怡红院成人视频| 丝袜美腿欧美| 日韩激情无码影院| 蘋果手機免費看成人Av| 亚洲午夜福利视频| 亚洲色人阁| 欲色影视综合吧| 岛园激情| 人人性爱视频免费| 粉嫩久久久极品| 欧美亚州手机在线| 小日子操bb在线看| 91情色在线| 久久最新免费视频23| 国产狂喷潮在线精品| 99999这里都精品| 99∨VTV| 人妻丰满熟妇一区二区三| 俞拍自拍| 九九九九88| av日韩在线观看电影| 九九热AV| 欧美综合综合| 九九热av| 亚洲全色网| 视频不卡中文字幕| 日本伦乱九九九综合| 欧洲特黄毛片免费看欧洲毛片| 中文字幕后石码四区五区| 中 文字幕一区二区三四 五 区日 日 骚| 曰韩操B| 中文字幕后石码三区四区| 亚洲国产成人精品女人久久久| 99热超碰| 欧美日不卡| 超碰在线99| 91网站18在线| 少妇精品| 大香蕉 222| 久久久久九九九九| 欧美激情久久久久| 久久本道| 色情综合网| 亚洲AV秘 精品久久老牛影视| 青女偷拍网| 国产天美传媒精品| 色诱中文字幕| 夜夜操老骚逼视频网站| 一区二区你上我| 久久久久九九九| 日本加勒比无码专区一二三| 欧美日韩青操| 老熟妇91| 在线视频资源| AⅤ片水多多| 一线黄色免费性爱片| 日本高清加勒比| 成人性爱av.com| 日本高清视频在线观看黄已三辽| 91久久午夜无码鲁丝片久久人妻| 91 国产丝袜在线播放-百度| 日本不卡在线二区三区| 五月天久久综合网| 九九成人| 国产av色网| 自拍偷拍草一草| 狠狠操天天干| 青青草导航在线视频| 中日韩免费看男女操逼大全| 黄片www.| 丁香五月婷婷基地| 清柠毛片| 四色永久成人网站| 色香av| 亚洲天堂一二| 天天爱天天操| 久久99久久99久久99人受| 亚洲性少妇| 日本性交操一区二区不卡系列| 亚洲 日韩 欧美 国产综合体| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 女人久久久| 在线无码网站| 亚洲不卡av在线| 久久久久久大| 91亚洲网站| 婷婷色一区| 婷婷丁香五月激情啪啪| 婷婷15月天青娱乐| 亚洲**2021在线观看| www.色婷婷| 亚欧美综合网。| 亚洲春色欧美激情自拍| 亚洲精品天天影视综合网| 日韩精品一区二区人人人| 国模艳艳啪啪一区| 曰本91情色| 蜜臀AV秘一区翔田千里| 中文字幕55555| 91亚洲在线| 99操碰| a啊啊啊啊啊啊啊啊一区二区| 日本Xx性爱| 亚洲色图国产另类| 黑人中出21连凳花野真衣| 欧美高清性猛交| 麻豆天美国美国产| 欧美性爱一区| 五月婷婷丁香六月丁香| 国产少妇高潮| 丰满人妻无码一区二区三区| 日日嗨AV一区二区夜夜| 大香蕉免费乱伦视频| 日本精品五区| 综合网欧美在线| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 色老汉色| 天天视频综合在线观看视频| 欲色啪| 天天躁日日躁XXXXYY| 天天操天天日青青草超碰av| 91黑人无码激情在线| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 中文字幕人成乱码熟女香港| 人妻熟女一区二区| 一块操欧美性爱| 国产白丝AV| 日韩精品.久久精品.AV女优.天美传媒| 国产深喉视频一区二区| 青青草色情网站视频| 蜜桃视频成a人v在线| 欧美天堂亚洲电影院一区在线播放| 国产探花精品在线| 在线欧美亚洲| 欧美熟女妇同| **一级毛片国产| 一区二区三区不卡视频| 蜜臀99999| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 嗯嗯嗯啊啊啊操的我好爽| 91一区二区三区蜜桃| 精品成人女人久久| 亚洲精品色| 另类图片欧美激情综合| 69丨亚洲丨精品丨入口免费播放| 五月婷婷五月天| 色吧 综合| 无码人妻系列少妇| 国产精品老熟女一区二区| 91福利网在线观看| 97中文字幕九区| 操人妻逼91| 激情五月天视频| 日韩激情电影中文字幕| 91精品操美女| 国产青视频| 天天肏夜夜肏| 操逼1区| 亚洲一区二区三区婷婷| 久久中文字幕女同性恋一区| 91 国产丝袜在线放观看| 国产精品干干干| 欧美日韩在线小说| 超碰偷拍| 天天看片麻豆| 欧美日韩222| 婷婷五月天激情网| 人人摸人人摸人人干| 亚洲国产美女久久久久 | 久久国产精品91| 久久久亚洲欧美综合| 蜜臀99久久| 亚洲色天堂九9| 国产精品久久久九九九| 超碰爽人妻熟女Av| 天天操夜夜操| 九九色综合| 嫖老熟女A片一二三区| 亚洲中文字幕在线视频一区二区 | 熟女欧美日韩综合婷婷| 小草精彩毛片| 日韩人妻精品久久久久| 亚卅熟女乱色| 欧美精品久久久久久久久88| 一区操逼日比视频| 国产精品亚洲天堂网址| 强奸乱伦AV一天堂网| 91色宗合| 综合少妇网| 国产精品久久99日日| 亚洲欧美高清无码| 97超碰人人操人人操| 午夜九九九九九九| 酒色综合网| 天美传媒婬乱在| 超碰色97| 97日韩| 综合色91| 日本色日夜干| 激情小说亚洲| 富女玩鸭子一级毛片| 中文字幕欧美丝袜07资源| 精品国产AV一区天美传媒| 外国免费性情大片| henhen91| 91在线免费精品视频| 久久久久亚洲Av无码专区老牛影视| 精品人妻丰满熟妇一区二区三| 67914在线兔费成人视频| 无码精品啪啪啪一区二区三区三州| 成人精品视频| 国产一区二区在线看| 超碰九九| 超碰午夜| 天天色黄色影院天天操| 性影在线视频| 欧美婷婷五月天| 97色干| 丰满人妻一区二区三区免费,| 国色天香av| 青苹果影院男人的天堂| AV99热18这里只有精品| 女人18精品一区二区三区| 久热精品在线| 欧美激情专区| 成人日韩3| 激情综合二| 久久婷婷亚洲| 蜜桃久久久久久久| 九九国产| 精品久久久久综合无码| 日韩av性爱在线播放| 青娱乐亚洲自拍| 中文字幕在线高清男人的天堂| 久久久久9999| 欧美激情片一区二区| 亚洲高清在线se| 91精品91久久久中77777| 边做饭边操逼逼| 亚洲国产精品无码AV在线| 91婷婷| 国产农村妇女精品1区二区| 欧美性综合| 偷拍 亚洲 欧美| 女同女同恋久久级三级| 亚洲色婷婷| 久久国产视频专区一二三| 学生妹天天看| 黄片视频观看| 精品超碰国产| 国产成人主播| 亚洲一区二区三区婷婷| av在线一区二区三区| 水澄无码AV| 长久操视频| 亚洲影院成人| 五月天婷婷影院| 亚洲色情在线影视| 91精品人| 日韩午夜啪啪视频| 欧洲亚洲天堂精品| 久久这里只精品免费福利| 亚洲各类熟们中文字幕| 福利在线视频一区二区| 丁香五月影院| 97在线观视频免费观看| 性夜影院爽黄A爽免费动漫| 秋霞一级视频在线观看免费| 啊啊啊在线观看免费视频| 校园激情狠狠四射| 蜜乳AV一区二区三区四| 加勒比综合九九99视频在线播放| 精品久9| 一区二区三区精品视频| 99只有精品| 国内精品嫩模A∨私拍小视频| 亚洲欧美精品91| 死我十八禁| 久久直播国产| 男人的天堂欧美| 热99这里有精品综合久久 | 啊啊啊久久久视频| 九色精品视频导航1| 日本三级小说中文字幕| 综合久久9| 婷婷五月天av| 人人妻人人澡人人爽人人精品浪潮| 青娱乐国产盛宴视频| 2017大香蕉国产精品久久| 色欲久久久久综合网| 丰满少妇一区二区三区专区| 97精| 少妇蜜汁| 久久性爱视频免费看| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 亚洲图片色图欧美另类| 欧美五区| 国产成人欧美一区二区三区的国产| 色999偷自拍拍| 国产精品人妻一区二区| 亚洲综合113页| 日韩激情电影中文字幕| 国产熟女| 免费一级黄色录像影片| 国产精品不卡一区二区三区| 午夜无码精品免费看性色| Aa东京男人的天堂| 丁香五月激情综合国产| 日本欧美不卡| 精品妇女一区二区三区| 中国AAAAAA黄色片| 少妇内射www在线观看视频| 911av网站免费观看| 中国熟女91| 免费看日产一区二区三区| 欧洲色综合| 色色热| 色欲Av人妻精品一区二| 欧美日韩亚洲五月天婷婷| 91快色色色色色| 33044男人的天堂深夜备| 久操婷婷| 中国AAAAAA黄色片| 成人久久久精品| 亚洲激情网| 人妻一区二区三区四区视频| 欧美大战久久久伊人| 亚洲一区二区性爱电影| 久久久久少妇| 性交一区二区在线播放| 国产亚洲一黄| 美女尤物人人操| 果冻传媒一区二区三区| 69超碰综合| 日韩性爱1级片视频| 91女优在线观看| 色婷五月天| 午夜国产乱伦视频| 欧美性爱一区二区三区| 亚洲色图欧美色图另类图片| 天天天天天天天天综合| 99热这里只有精品9| 超碰日韩人妻| 9精品久久久久| 人人污日韩一区二区| 亚洲无码久久久久久久| 日韩日本欧美在线观看| 大白逼三四级| 久久偷拍人| 99色在线| 大香网站| 国模无码人体一区二区三| 亚洲骚男同com| 啊啊啊啊啊啊啊好爽不要| 日韩AV一起草| 亚欧成人综合影院| 97天堂| 91精品人妻啪啪间| 日本999精品视频| 青草视频在线看看看看看看看看看| 国产精品亚洲高清在线| 精品在线蜜臀| 久久9精品| 无码操逼天堂| 91网站视频在线观看| 蜜桃视频精品一区二区| 深田咏美亚洲精品福利社| 国产精品高清2021在线| 97精品免费视频网站| 亚洲欧美综合网站| 久久99精品国产| 少妇毛片久久| 夜夜夜久久| 色色99| 久操婷婷| 超碰人人超在线观看| 午夜.DJ高清在线观看免费7| 国产精品直播在线观看直播| 外站AV在线| 天啪| 大香蕉伊人75| 欧美偷拍| 美欧色综合| 这里都是精品| 中文字幕一区二区三区人妻不卡 | 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 欧美在线天堂| 日本媚薬中文字幕在线| 高清视频一区| 欧美性色网| 97色在线视频| 青春草莓视频在线观看网址| 91精品国产91久久青草| 日本成a人v网站在线观看| 国产精品久久久| 国产自制av蜜乳| 日B操| 少妇啪啪自拍| 青娱乐亚洲自拍| 中文字幕亚韩| 69精品人人人人| 91一区二区| 暖暖精品二区三区观看| 日日日啊啊啊| 青青草色插素人| 亚洲资源网| 中文字幕欧洲有码| 欧美性爱一区二区三区| 丝袜亚洲综合| 奇米四色网| 日韩国产乱子伦App| 成年女人18级毛片毛片免费观看| 久久草大香蕉| 九九久久一区二区三区| 麻豆一区在线| 一二三四区电影| 超碰九7| 在线观看不卡一区二区三区| 亚洲va有码在线天堂| 91精品国产高清久久久久久,亚洲成人| 亚州九九九精品视频| 午夜精品久久久99热蜜桃的功能特点| 蜜臀99久久精品| 亚洲欧美首页| 久久无码成人| 99爱在线视频| 99蜜桃臀亚洲成人在线观看| 97久久久久久久久久| 大香蕉中文在线| 国产日韩欧美操逼视频| 欧美人人AAA| 97视频观看| 91 国产丝袜在线播放-百度| 99热这里都是精品| 秋霞成人做爱| 99久视频| 97碰碰日本乱偷人妻中文的| 91白虎| 国产欧美日韩一区二区三区| 91精品综合久久久久久五月丁香| 玖玖综合色| 蜜臀中文无码午夜| 亚洲不卡三级手机播放| 狠狠干妹子| 国产精品久久久 | 麻豆国产av网| 性交一区二区在线播放| 伊人国产视频| 亚洲三级。日韩三级| 精品午夜福利国产一区二区在线观看| 国产精品久久久鸭无码的功能| 亚洲国产剧情少妇激情| 亚州高清av| 超碰97人妻免费在线| 中国一区二区亚洲人妻| 春色校园综合网| 久久久精品,3| 制度丝袜99| 色哟哟国产精品免费网址| 中文字幕在线第二页| 欧洲在线性爱视频| www.久久99| 素颜老阿姨乱情色| 麻豆久久精品亚洲精品88| 国产91精品福利在线| 色91综合网| 超碰诱惑| 综合啪啪| 操逼内射干逼白丝91| 超碰色图| 91动漫操逼视频| 综合网亚| 大肥女高潮bbwbbwhd视频| 久久直播国产| 青青草伊人久久| 亚洲中字幕日本一区二区三区 | 操www| www鬼畜国产男人的天堂| 久久精品操| 久操视频资源站公开| 中国小夫妻勾搭露脸淫荡对白| 亚州一区二区| 天天爽爽爽爽| 日韩精品人妻一区二区| 91粉嫩萝控精品福利网站_精品影音先锋国| 嗯嗯啊好大| 午夜小电影在线插入淫高潮| 欧美日韩国产中文超碰| 夜夜精品视频一区二区| av凤凰久久久| 青青草好吊| 91丨豆花丨熟女| 97超碰色屌| 亚洲色系另类精品国产| 97亚洲资源| 日本一区视频在线观看| 麻豆国产成人精品| 亚洲另类小说卡通动漫| 先锋音影AV| 久操com| 白丝在线一区| 超碰成人最新最好看| 久久精品男人的天堂| 操逼操逼逼操操逼91 | 制服中出中文人人精品| 久久社区一区二区三区| 狠狠躁天天躁日日躁97| 一本一道波多野毛片中文在线| 久久综合久色欧美综合狠狠| 日韩欧美aⅴ综合网站发布| 精品人妻一二三四区视频| 欧美日韩香蕉| 超碰97伊人| 九九九九88| 激情综合97| 国产免费黄色一级大片| 欧美熟妇人体| 91快色色色色色| 日日日日做夜夜夜夜做无码97| 欧美日韩99| 男人天堂2030| 中文字幕-区二区三区四区视频中国 | 人妻美腿丝袜制服诱惑综合天堂-| AAAA欧美日韩| 老鸭窝日丰县女人| 夜夜嗨一区二区| 欧美精品三级黄片| 国产一区二区三区,在线观看观看| 超碰在线香蕉| 性欧美91| 夜夜爽妓女| 蜜乳性色无码专日粉嫩骚逼AV| 人人爽夜夜玩视频| 美国美女AV在线| 日韩免费三级黄片电影| 久草成人影片| 黄色小说亚洲| 国产精品香蕉热久久新品| 黄页av| 大香蕉天天看妹子| 欧美精品1区2区3区| 日本久久超碰| 91精产一区二区三区| 激情久久久| 国产一级内射无挡观看| 少妇天堂| 97看操| 密桃99999| 人人贴人人摸| 九九久久久| 蜜屁Av| 亚洲色人妻综合| 国产精品麻豆视频网站| 在线亚洲欧美| 日本不卡中文| 久久综合女优| 亚洲色图在线视频| 亚洲欧美日韩精品久久久一区二区| 97天天操| 人妻少妇久久中文| 欧美天堂日韩三级国产传媒| 思思热在线观看| 大香蕉一区二区在线观看.| 亚洲综合在线第一页| 麻豆精品天美| 999日韩中文精品观看视频。| 国产91精品福利在线| 成人国产视频在线观看| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 男女猛烈无遮掩视频免费软件| 四虎免费视频| 9999亚洲电影| 九月丁香婷婷| 长长久久88视频| 老熟女搡BBBB搡BBBB视频| 999综合网| 大逼色网站| 日韩人妻精品| 一区二区国产视频在线观看| 日韩三四五区| 女优免费一区二区永久| 91久久久久久| 91天堂色男人的天堂| 亚洲第一免费视频| 中文字幕国产在线天堂| 蜜臀久久99精品久久久久久-DVD| 日本中文字幕一区| 亚洲欧美精品久| 精品乱码久久久久| 少妇同性| 有码色中文字幕在线观看| 天堂蜜桃无码视频一区二区| 欧美在线视频99| 国产亚洲禁久一区二区| 人妻中文字幕日韩电影| 亚洲精品无码成人久久久99| 蜜乳AV免费观看| 国产丝袜美女在线一区| 国产一级内射高清视频| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 久久久18| 五月综合视频| 亚洲综合五月天| 天天舔天天 | 国产免费一区在线观看| 中国东北熟女老太婆内谢| 日逼国产| 黄色免费网页无码| 青青草丝袜在线视频| www.色99| 少妇精品久久久八区九区| 97bbn| 操逼精品视频| 熟妇激情| 国产精品另类一区大香蕉| 另类专区加勒比| 99999亚洲另类| 精品一级| 牛牛AV人人夜夜澡人人爽| 秋霞操逼片| 在线无码视频| 爱av免费| 午夜婷婷| 超碰97在线 欧美 国产| 熟女AV一区| 国产精品久久久久久久久久二区三区| 人妻精品一区一区三区蜜桃91| 91插B网站| 久久东京热久久| 天天上日日上日韩精品| 国产久久成人| 岛国成人av在线播放网址| 一起草av| 又黄又粗又硬又长又大| 九九九九九九免费视频| 亚春色色| 免费a级毛片av无码久久精品中文字幕| 一个色导综合| 日韩人妻一区二区精品| 亚州操操穴网| 国产精品久久久久久久久久久久久久久 | 婷婷在线视频| www.四虎在线| 丝袜色综合| 中出20p| 99久久久无码国产精品性啊聊| 操操逼操操逼操操逼逼| 性色av婷婷久久一区二区点复制| 99热免费| 亚洲91av| 国产亚热在线久久| 91丨国产丨白浆秘 洗澡动漫| 精品无码久久久久久国产浪潮| 天天色综合天天操| 神马午夜久久久| 精品国产乱码久久久久久日本公司| 97免费视频在线| 天天日天天干天天色| 91色婷婷综合久久中文字幕二区| 欧美日日夜夜| 色香综合天天影视综合| 久久精品国产精品一区| 粉嫩av在线一区二区| 人人澡人人爽人人精品| 91蜜桃传媒精品久久久一区二区| 国产传媒日韩| 亚洲精品日日夜夜52| 污啪啪啪视频| 亚洲AV色图一区| 亚洲AV秘无码一区..| 日本午夜精品理论片A级APP发布| 欧美色图片91| 亚洲中文字幕熟女少妇一区二区| 久久天天艹| 欧美九九爱| 国产熟女自拍| 日韩欧美操逼xxx| www.超碰| 美女丝袜激情小说| 一中国女人毛片水真多| 超碰av人人人| 男人天堂毛片| 强奸国产在线| 国产AV人人 夜夜人人澡| 9久精品| 久久久夜夜嗨免费视频| 欧美激情亚洲情色| 中文字幕乱妇免费视频| 国产女人操逼视频| 亚洲污一污二| 亚洲国产精品无码AV久久| 志村玲子视频一区二区| 久久成人东京热人妻| 操逼大黄片| 中文幕97| 中文字幕国产| 操香逼| 性久久久| juliaann精品熟女一区| 国产精品播放| 丁香五月天堂| 中文字幕二区| 人人操,操人人| 日韩欧亚中文在线| 欧美激情视频在线一区| 狼人综合婷婷激情四射 | 翔田千里AⅤHD无码| 激情小说五月天| 亚洲丝袜少妇在线| 伊人天堂在线| 黄页av| 国产av高清版| 美国日韩黄片| 啊啊啊啊啊操我视频| 亚洲中文字幕精品一区| 欧美成不卡网| 日韩av在线精品观看| 少妇天堂网络| 日韩亚洲中文有码视频| 97超碰亚洲| 探花熟女,姿勢到位,體驗感也到位| 日日摸日日碰| 欧美顶级黄色大片免费| 少妇精品久久久八区九区| 久久久免费的精品| 男人天堂导航| 超碰97精品在线| 亚洲色图欧美一区二区不卡| 色91综合网| 日本操色导航| 综合一区二区影视| 日本肏逼视频在线观看| 色九九久九九| 婷婷中文字幕| 欧美性天天| 少妇同性| 你想操日本小逼吗| 偷拍2020| 久久色情| 黑人娇小av在线播放| 国产夫妻性生活视频| 粉嫩绯色AV一区二区在线| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| 国产精品蜜乳AV| 亚洲成人帖图| 六月婷激情福利天堂69| 中文AV制服乱伦| 国产诱惑| 操狠狠| 亚洲免费成人在线高清无码视频| 久久久成人免费av电影| 国内毛片无码一级毛片| 日韩在线国产字幕| 中文一区在线日| 五月丁香在线| 亚洲人妻久久| 成人五月天色网| 久久婷婷精品| 免费?级毛片无码?∨蜜芽试看| 啊啊啊要高潮了| 亚洲激情网一二三四区| www.yeyecao| 亚洲AV色图一区| 色哟哟的毛片| 又粗又长又爽在线观看| 欧美另类丝袜熟女| 日本一天色道久久久精品视频| 一区二区三区免费岛国片| 亚洲97网站| 国产日本熟女顶级一区二区三区视频| 国产午夜福利电影免费在线观看| 国产后入清纯| 欧美熟妇乱码在线一区| 人妻熟女av国产网站| 农村女一级毛卡片| 国产精品第一页国产大屁股视频免费区i| 黑操B| 色官网色综合| 亚洲欧美国产va在线播放频| 97超碰影音| 国产原创精品| 毛片电影一区二区三区| 一级性爱啪啪视频| 久久9久| 日韩 女同 综合| 男人的天堂不卡一区二区 | 91麻豆天美国产| www.99热| 成人aⅴ一区二区三区| 日本成人免费一区二区三区| 99999亚洲另类| 国产AV人人 夜夜人人澡| 超碰97起碰| 欧美99热| 精品国产丝袜一区二区三区乱码| 久久大黄片| 91日韩国产欧美亚洲另类精盘州至城都| 99www.bibizy香蕉资源国产一区二区三区高清 | 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 无码国产Av| 午夜国产综合视频在线观看| 嗯嗯啊啊啊好爽| 91精品人妻啪啪间| julia中文字幕在线观看| AV天堂电影网| 五月开心网| 色婷婷亚洲婷婷| 亚洲无码99| 麻豆国产96在线| 丰满人妻一区二区三区大胸懂色| 国产一区二区a毛片| 蜜乳av一区二区| 无码高清少妇久久| 欧美亚洲国产91在线| 呦呦影院| 日本一级特级毛片视频| 天天射夜夜操| 探花视频免费观看国产专区| 清纯唯美激情| 91N综合网| 亚洲女人91| 夜色91| 超碰九7免费| 亲子敌伦对白在线播放| TS人妖另类精品视频系列| 亚洲色图伊人网| 9ⅰ久久久天天| 中日韩久久久免费看| 2017天天操天天日| 中文字幕色AV| sewuyueav| aa片毛片| 秋霞色色影院| 成人无码在线视频网站| 大香焦A片| 国产色呦呦| 在线观看综合精品亚洲| 婷婷色中文字幕| 国产伊人自拍| 韩国一级做A片免费的| 香蕉大久久久| 人人操超碰在线| 97色在线视频| 一区二区三区美女超清| 欧美大香蕉久| 黄片com.| 亚洲人妻av| 96精品在线| 97久久超碰国产网站| 亚洲熟女偷拍在线观看| 久久久极品| 伊人九九九| 国模无码人体一区二区三| 欧美强奸乱能| 另类在线| 素人美腿视频网站| 亚洲和欧美裸体美女双飞视频| 另类老少妇| 欧美日韩亚洲天堂| 岛国1区2区3区在线观看| 国产精品自拍xxxx| 另类视频在线| 无码91| 色网1| 78久久| 操逼操逼逼操操逼91| 很很干很很操| 国产精品久久久亚洲一区| 影音先锋一区二区在线资源| 97国产精品在线观看| 亚洲一区二区三区在线激情| 秋霞免费AV|