在適用於 Linux 的 Windows 子系統 (WSL) 上使用 Docker 進行開發

在適用於 Linux 的 Windows 子系統 (WSL) 上使用 Docker 進行開發

要在 WSL 中完全使用 Docker 項目,必須安裝 WSL 2。在撰寫本文時,它的使用只能作為參與 Windows Insider 計劃的一部分(WSL 2 在版本 18932 及更高版本中可用)。 另外值得一提的是,安裝和設定 Docker Desktop 需要 Windows 10 Pro 版本。

第一步驟

加入 Insider 計畫並安裝更新後,您需要安裝 Linux 發行版(本例為 Ubuntu 18.04)和具有 WSL 2 技術預覽版的 Docker Desktop:

  1. Docker Desktop WSL 2 技術預覽
  2. Windows 應用程式商店中的 Ubuntu 18.04

在這兩點上,我們都遵循所有安裝和設定說明。

安裝 Ubuntu 18.04 發行版

在執行 Ubuntu 18.04 之前,您需要透過在 PowerShell 中執行兩個命令來啟用 Windows WSL 和 Windows 虛擬機器平台:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (需要重新啟動電腦)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

之後我們需要確保我們將使用 WSL v2。 為此,請在 WSL 或 PowerShell 終端機中執行以下命令:

  • wsl -l -v — 查看目前安裝的版本。 如果 1,那麼我們在列表中進一步向下移動
  • wsl --set-version ubuntu 18.04 2 - 更新到版本2
  • wsl -s ubuntu 18.04 — 安裝 Ubuntu 18.04 作為預設發行版

現在您可以啟動 Ubuntu 18.04 並對其進行配置(指定您的使用者名稱和密碼)。

安裝 Docker 桌面

在安裝過程中請按照說明進行操作。 安裝後和首次啟動時,電腦需要重新啟動才能啟用 Hyper-V(需要 Windows 10 Pro 支援)。

重要的信息! 如果 Docker Desktop 報告被防火牆阻止,請前往防毒設定並對防火牆規則進行以下變更(在本範例中,使用卡巴斯基全方位安全軟體作為防毒軟體):

  • 前往設定 -> 安全性 -> 防火牆 -> 設定封包規則 -> 本機服務 (TCP) -> 編輯
  • 從本機連接埠清單中刪除連接埠 445
  • 保存

啟動 Docker Desktop 後,從其上下文選單中選擇 WSL 2 Tech Preview。

在適用於 Linux 的 Windows 子系統 (WSL) 上使用 Docker 進行開發

在開啟的視窗中,按一下「開始」按鈕。

在適用於 Linux 的 Windows 子系統 (WSL) 上使用 Docker 進行開發

Docker 和 docker-compose 現在可以在 WSL 發行版中使用。

重要的信息! 更新後的 Docker Desktop 現在在設定視窗中有一個帶有 WSL 的選項卡。 那裡啟用了 WSL 支援。

在適用於 Linux 的 Windows 子系統 (WSL) 上使用 Docker 進行開發

重要的信息! 除了 WSL 啟動複選框之外,您還需要在「來源」->「WSL 整合」標籤中啟動 WSL 發行版。

在適用於 Linux 的 Windows 子系統 (WSL) 上使用 Docker 進行開發

Запуск

出乎意料的是,在嘗試提升位於 Windows 使用者目錄中的項目容器時出現了許多問題。

與 bash 腳本啟動相關的各種錯誤(通常在建置用於安裝必要的程式庫和發行版的容器時啟動)以及 Linux 上開發的其他常見問題使我們考慮將專案直接放置在 Ubuntu 18.04 的使用者目錄中。

.

根據上一個問題的解決方案,以下是:如何透過 Windows 上安裝的 IDE 來處理專案檔。 作為“最佳實踐”,我發現自己只有一個選擇 - 透過 VSCode 工作(儘管我是 PhpStorm 的粉絲)。

下載並安裝VSCode後,請務必安裝在擴充功能中 遠端開發擴充包.

安裝上述擴充功能後,只需執行命令 code . VSCode 運行時的專案目錄中。

本例中需要nginx透過瀏覽器存取容器。 透過安裝它 sudo apt-get install nginx 事實證明並沒有那麼簡單。 首先,我們需要透過運行來更新 WSL 發行版 sudo apt update && sudo apt dist-upgrade,然後才開始 nginx 安裝。

重要的信息! 所有本機網域都不在 Linux 發行版的 /etc/hosts 檔案中註冊(甚至不存在),而是在 Windows 32 的主機檔案(通常位於 C:WindowsSystem10driversethosts)中註冊。

來源

每個步驟的更詳細描述可以在這裡找到:

來源: www.habr.com

添加評論