[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-run-linux-containers-on-wsl-with-wslc-zh":3,"article-related-run-linux-containers-on-wsl-with-wslc-zh":29,"series-tools-fea0311b-9182-48fa-af78-cb5d916970f2":74},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":22,"views":26,"created_at":27,"published_at":28,"topic_cluster_id":11},"fea0311b-9182-48fa-af78-cb5d916970f2","run-linux-containers-on-wsl-with-wslc-zh","在 WSL 用 wslc 跑 Linux 容器","\u003Cp data-speakable=\"summary\">這篇教你在 Windows 的 WSL 2.9.3+ 上用 wslc.exe 建置、執行與檢查 Linux 容器。\u003C\u002Fp>\u003Cp>這篇給 Windows \u003Ca href=\"\u002Fnews\u002Flayer-2-rollup-development-setup-guide-zh\">開發\u003C\u002Fa>者看，目標是在 WSL 內建立一套本機容器流程，不必另外安裝獨立的容器引擎。照做完，你會拿到可用的 WSL、已驗證的 wslc、可執行的範例容器，以及自己專案的建置路徑。\u003C\u002Fp>\u003Cp>你也會學會如何轉發埠、查看日誌、清理停止中的容器，讓整套流程維持輕量且好維護。這個做法也適合搭配 Visual Studio Code 與 Ubuntu 這類 Linux 發行版。\u003C\u002Fp>\u003Ch2>開始之前\u003C\u002Fh2>\u003Cul>\u003Cli>Windows 11 或已安裝 WSL 的 Windows 10\u003C\u002Fli>\u003Cli>WSL 版本 2.9.3 以上\u003C\u002Fli>\u003Cli>Windows 上可開啟 PowerShell\u003C\u002Fli>\u003Cli>WSL 發行版已安裝，例如 Ubuntu\u003C\u002Fli>\u003Cli>Git 已安裝在 WSL 發行版內\u003C\u002Fli>\u003Cli>選用：Visual Studio Code 與 WSL 擴充功能\u003C\u002Fli>\u003Cli>選用：Windows Terminal\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>Step 1: 更新 WSL 預覽版\u003C\u002Fh2>\u003Cp>先把 WSL 更新到包含 wslc.exe 的版本，這是後面所有容器指令的基礎。沒有達到版本門檻，後續步驟就無法順利執行。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785933170061-tafy.png\" alt=\"在 WSL 用 wslc 跑 Linux 容器\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cpre>\u003Ccode>wsl --update --pre-release\nwsl --version\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>你應該看到 WSL 版本顯示為 2.9.3 以上。若更新成功，就代表基礎 runtime 已準備好。\u003C\u002Fp>\u003Ch2>Step 2: 驗證 wslc 指令\u003C\u002Fh2>\u003Cp>接著確認容器 CLI 已隨 WSL 可用，先驗證工具存在，再開始跑映像檔。這一步可以避免把問題誤判成映像檔或網路錯誤。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785933169211-oloj.png\" alt=\"在 WSL 用 wslc 跑 Linux 容器\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cpre>\u003Ccode>wslc version\nwslc --help\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>你應該看到 wslc 的版本字串，以及包含 run、build、image、container、stats 的說明頁。這表示 PowerShell 已能呼叫這個 CLI。\u003C\u002Fp>\u003Ch2>Step 3: 執行 hello-world 容器\u003C\u002Fh2>\u003Cp>先用最小映像檔做端到端測試，確認拉取、啟動與輸出都正常。這是最快的通路驗收，也能提早排除 runtime 問題。\u003C\u002Fp>\u003Cpre>\u003Ccode>wslc run --rm hello-world\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>你應該看到 Hello 訊息，表示安裝流程看起來\u003Ca href=\"\u002Fnews\u002Fkimi-k3-jiu-kai-shi-gei-zi-ji-da-gong-liao-zh\">已經\u003C\u002Fa>可正常運作。若有這段輸出，就代表 WSL 容器路徑已通過基本驗收。\u003C\u002Fp>\u003Ch2>Step 4: 啟動 nginx 並轉發埠\u003C\u002Fh2>\u003Cp>完成煙霧測試後，改跑一個背景服務並映射到 Windows 本機埠。這會\u003Ca href=\"\u002Fnews\u002Flayer-2-vs-layer-3-38b-tvl-trade-off-zh\">讓你\u003C\u002Fa>能直接用瀏覽器或本機工具測試服務。\u003C\u002Fp>\u003Cpre>\u003Ccode>wslc run -d --rm -p 8080:80 --name web nginx\ncurl localhost:8080\nwslc container list\nwslc exec web cat \u002Fetc\u002Fos-release\nwslc container stop web\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>你應該看到 localhost:8080 回應內容、容器清單中出現正在執行的項目，以及容器內的 Linux 版本資訊。停止容器後，因為使用了 --rm，所以容器會自動移除。\u003C\u002Fp>\u003Ch2>Step 5: 建置自己的 Containerfile\u003C\u002Fh2>\u003Cp>現在把範例映像檔換成你自己的應用映像檔。這一步的具名產出是專案根目錄中的 Containerfile，以及一個可重複使用的標籤映像檔。\u003C\u002Fp>\u003Cpre>\u003Ccode>FROM python:3\nWORKDIR \u002Fapp\nCOPY requirements.txt .\nRUN pip install --no-cache-dir -r requirements.txt\nCOPY . .\nEXPOSE 8000\nCMD [\"python\", \"manage.py\", \"runserver\", \"0.0.0.0:8000\"]\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>在包含 Containerfile 的資料夾中執行建置，並替映像檔取一個可重用的 tag。\u003Ca href=\"\u002Ftag\u002Fmicrosoft\">Microsoft\u003C\u002Fa> 建議把專案檔案放在 WSL 檔案系統內，Linux 工具讀寫會更快。\u003C\u002Fp>\u003Cpre>\u003Ccode>wslc build -t helloworld-django .\nwslc image list\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>你應該在映像檔清單中看到新建好的 image。若從 WSL 檔案系統建置，檔案存取通常會比放在 Windows 檔案系統更順。\u003C\u002Fp>\u003Ch2>Step 6: 啟動、檢查與清理應用容器\u003C\u002Fh2>\u003Cp>最後把自製映像檔跑起來，查看日誌，再把資源清乾淨。這會形成可重複的開發與除錯流程。\u003C\u002Fp>\u003Cpre>\u003Ccode>wslc run -d --rm -p 8000:8000 --name django helloworld-django\nwslc container list\nwslc container logs django\nwslc exec django uname\nwslc container stop django\nwslc container prune\nwslc image prune\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>你應該看到應用可在 http:\u002F\u002Flocalhost:8000\u002F 開啟、容器日誌可讀，且 uname 回報 Linux。清理完成後，停止中的容器與未使用映像檔都會被移除。\u003C\u002Fp>\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>指標\u003C\u002Fth>\u003Cth>基準／優化前\u003C\u002Fth>\u003Cth>結果／優化後\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>WSL 版本\u003C\u002Ftd>\u003Ctd>低於 2.9.3\u003C\u002Ftd>\u003Ctd>2.9.3 以上且已套用預覽更新\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>容器 CLI\u003C\u002Ftd>\u003Ctd>無法使用 wslc.exe\u003C\u002Ftd>\u003Ctd>wslc version 回傳有效版本\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>煙霧測試\u003C\u002Ftd>\u003Ctd>尚未驗證容器\u003C\u002Ftd>\u003Ctd>hello-world 輸出 Hello 確認訊息\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>埠轉發\u003C\u002Ftd>\u003Ctd>無法對外提供本機服務\u003C\u002Ftd>\u003Ctd>localhost:8080 或 localhost:8000 可連到容器\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003Ch2>常見錯誤\u003C\u002Fh2>\u003Cul>\u003Cli>WSL 版本低於 2.9.3。修法：執行 \u003Ccode>wsl --update --pre-release\u003C\u002Fcode>，再用 \u003Ccode>wsl --version\u003C\u002Fcode> 確認。\u003C\u002Fli>\u003Cli>專案放在 Windows 檔案系統。修法：把程式碼移到 WSL 檔案系統，Linux 工具讀寫會更快。\u003C\u002Fli>\u003Cli>忘記轉發容器埠。修法：在測試前加上 \u003Ccode>-p host:container\u003C\u002Fcode>，例如 \u003Ccode>-p 8000:8000\u003C\u002Fcode>。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>接下來可以看什麼\u003C\u002Fh2>\u003Cp>下一步可以看 WSL 容器總覽、容器 \u003Ca href=\"\u002Ftag\u002Fapi\">API\u003C\u002Fa> 範例，以及 \u003Ca href=\"\u002Ftag\u002Fvs-code\">VS Code\u003C\u002Fa> 的 WSL 工作流程，進一步把這套環境接到除錯、自動化與自己的服務上。\u003C\u002Fp>","這篇教你在 Windows 的 WSL 2.9.3+ 上用 wslc.exe 建置、執行與檢查 Linux 容器。","learn.microsoft.com","https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fwindows\u002Fwsl\u002Ftutorials\u002Fwsl-containers",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785933170061-tafy.png","tools","zh","422265fa-3472-489b-a791-af1622f7461b",[17,18,19,20,21],"WSL","wslc","Linux containers","PowerShell","Visual Studio Code",[23,24,25],"先把 WSL 更新到 2.9.3 以上，才能使用 wslc.exe。","用 hello-world、nginx 與自製映像檔，依序驗證拉取、執行與建置。","把專案放在 WSL 檔案系統，並用埠轉發與清理指令維持工作流。",0,"2026-08-05T12:32:27.473774+00:00","2026-08-05T12:32:27.452+00:00",{"tags":30,"relatedLang":33,"relatedPosts":37},[31],{"name":21,"slug":32},"visual-studio-code",{"id":15,"slug":34,"title":35,"language":36},"run-linux-containers-on-wsl-with-wslc-en","Run Linux containers on WSL with wslc","en",[38,44,50,56,62,68],{"id":39,"slug":40,"title":41,"cover_image":42,"image_url":42,"created_at":43,"category":13},"a88cd1d5-a31e-4932-89ed-27989257620c","aliyun-free-cloud-server-first-deployment-zh","阿里云试用额度部署首台服务器","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785846785679-f8bn.png","2026-08-04T12:32:34.829107+00:00",{"id":45,"slug":46,"title":47,"cover_image":48,"image_url":48,"created_at":49,"category":13},"b8da22f6-d35f-41a1-915c-2d80abba0c25","deepseek-v4-flash-agent-cost-breakdown-zh","DeepSeek V4 Flash 讓 Agent 便宜跑","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785785620047-lrkk.png","2026-08-03T19:33:15.823908+00:00",{"id":51,"slug":52,"title":53,"cover_image":54,"image_url":54,"created_at":55,"category":13},"3fa27164-43f7-4636-8c28-eae3775d4c66","gpt-56-sol-gpu-kernel-cost-down-20-percent-zh","GPT-5.6 Sol 把 GPU 核心成本砍 20%","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785780224229-hx8i.png","2026-08-03T18:03:17.220074+00:00",{"id":57,"slug":58,"title":59,"cover_image":60,"image_url":60,"created_at":61,"category":13},"715beca0-3b00-473b-9682-7cfbdc56dbd4","astra-hidden-model-launch-zh","Astra 讓你看懂藏頭發布","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785758609535-g17i.png","2026-08-03T12:03:02.555805+00:00",{"id":63,"slug":64,"title":65,"cover_image":66,"image_url":66,"created_at":67,"category":13},"2d8b45eb-9fba-4795-9dc3-6044da7ba7db","openai-api-changelog-spend-caps-transcribe-fast-mode-zh","OpenAI API 加上支出上限與 Fast 模式","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785744187504-3vnx.png","2026-08-03T08:02:40.26552+00:00",{"id":69,"slug":70,"title":71,"cover_image":72,"image_url":72,"created_at":73,"category":13},"c270e83a-3911-4744-b99e-742cb230e814","windsurf-intellij-plugin-shortcut-not-strategy-zh","Windsurf 的 IntelliJ 外掛是捷徑，不是策略","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1785610964540-25y5.png","2026-08-01T19:02:18.303525+00:00",[75,80,85,90,95,100,105,110,115,120],{"id":76,"slug":77,"title":78,"created_at":79},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":81,"slug":82,"title":83,"created_at":84},"9b19ab54-edef-4dbd-9ce4-a51e4bae4ebb","mcp-in-2026-the-ai-tool-layer-teams-use-zh","2026 年 MCP：團隊真的在用的 AI 工具層","2026-03-26T08:01:46.589694+00:00",{"id":86,"slug":87,"title":88,"created_at":89},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":91,"slug":92,"title":93,"created_at":94},"05553086-6ed0-4758-81fd-6cab24b575e0","garry-tan-open-sources-claude-code-toolkit-zh","Garry Tan 開源 Claude Code 工具包","2026-03-26T08:26:20.068737+00:00",{"id":96,"slug":97,"title":98,"created_at":99},"042a73a2-18a2-433d-9e8f-9802b9559aac","github-ai-projects-to-watch-in-2026-zh","2026 必看 20 個 GitHub AI 專案","2026-03-26T08:28:09.619964+00:00",{"id":101,"slug":102,"title":103,"created_at":104},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":106,"slug":107,"title":108,"created_at":109},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":111,"slug":112,"title":113,"created_at":114},"bfdb467a-290f-4a80-b3a9-6f081afb6dff","aiml-2026-student-ai-ml-lab-repo-review-zh","AIML-2026：像課綱的學生實驗 Repo","2026-03-27T01:21:51.467798+00:00",{"id":116,"slug":117,"title":118,"created_at":119},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00",{"id":121,"slug":122,"title":123,"created_at":124},"3ce6e6e2-bac5-463e-9f8d-45caabcc61f7","awesome-ai-for-science-research-tools-map-zh","AI 科研工具清單，開始像地圖了","2026-03-27T01:46:50.521945+00:00"]