WSL Docker

一、WSL Docker 簡介

WSL Docker 是一款基於 Windows Subsystem for Linux2(WSL2)的 Docker 解決方案,它提供了與 Docker Desktop for Windows 相近的體驗,使得 Windows 下的開發者無需開啟傳統虛擬機就能夠輕鬆構建和管理 Docker 容器。

WSL Docker 可以在 Windows 10、Windows Server 2019 和 Windows 11 的 WSL2 環境中運行,用戶可以使用 Linux 的命令行工具或者使用 Windows 中的 GUI 界面來管理 Docker 容器。同時,WSL Docker 可以與 Visual Studio Code 集成,提供更加友好和高效的開發體驗。

二、WSL Docker 安裝

在安裝 WSL Docker 之前,首先需要確保環境中已經安裝了 WSL2、Docker Desktop for Windows 以及 Windows Terminal。

1. 安裝 WSL2


# 升級到最新版本的 Windows
sudo apt-get update && sudo apt-get upgrade -y

# 安裝 WSL2
sudo apt-get install -y curl gnupg2 apt-transport-https
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
echo "deb [arch=amd64] https://download.docker.com/linux/debian buster stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
sudo apt-get install -y docker-compose
sudo usermod -aG docker $USER

2. 安裝 Docker Desktop for Windows

在官網下載 Docker Desktop for Windows 並安裝,保持默認配置即可。

3. 安裝 Windows Terminal

在 Microsoft Store 中搜索 Windows Terminal 並安裝。

4. 安裝 WSL Docker


# 安裝 WSL Docker
git clone https://github.com/microsoft/wsl-docker.git
./wsl-docker.sh install

三、WSL Docker 使用

使用 WSL Docker 和使用傳統 Docker 差別不大,基本操作和命令都相同。使用 WSL Docker 時,可以通過以下命令在 WSL2 中啟動 Docker。


sudo service docker start

通過 docker 命令可以查看 Docker 容器的狀態、創建和啟動容器,使用 docker run 命令啟動容器時,需要加上 –platform=linux 選項。


# 查看 Docker 容器列表
docker ps -a

# 創建並運行 Docker 容器
docker run -d --name my_container -p 80:80 nginx --platform=linux

WSL Docker 雖然能夠提供一些避免使用傳統虛擬機的便利,但也存在一些限制。由於 WSL2 是運行在 Windows 中的,因此無法直接訪問 Windows 下的文件系統,需要藉助掛載點,將 Windows 中的目錄掛載到 WSL2 中。同時,WSL Docker 中的容器也不能直接訪問 Windows 下的網路資源,需要藉助 Windows 下的代理伺服器實現網路連接。

四、WSL Docker 和 Visual Studio Code 集成

WSL Docker 還可以與 Visual Studio Code 集成,提供更加友好和高效的開發體驗。

1. 安裝 Remote – WSL 插件

在 VS Code 中搜索 Remote – WSL 插件,安裝。

2. 在 WSL2 中打開 VS Code

在 WSL2 中運行 VS Code,可以通過以下命令打開:


# 安裝代碼編輯器 VS Code
sudo apt-get install -y wget curl software-properties-common apt-transport-https
wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
sudo apt-get update
sudo apt-get install -y code

# 在 WSL2 中打開 VS Code
code .

3. 通過 VS Code 進行開發

在 WSL2 中打開 VS Code 後,就可以像在本地開發一樣使用 VS Code 進行開發了,可以通過命令行或者文件瀏覽器打開項目目錄,進行代碼編寫、調試和版本控制。

五、WSL Docker 的優缺點

WSL Docker 作為一款新興的 Docker 解決方案,其優點和缺點明顯。

1. 優點

WSL Docker 無需開啟傳統虛擬機,可以在 Windows 中輕鬆構建和管理 Docker 容器,因此啟動速度更快、佔用資源更少。同時,WSL Docker 在 Windows 下的操作體驗更加友好和自然,對於習慣了 Linux 命令行工具的開發者來說,更容易操作。

2. 缺點

WSL Docker 存在一些限制,比如無法直接訪問 Windows 下的文件系統和網路資源,需要藉助掛載點和代理伺服器實現。同時,由於 WS2 是建立在 Windows 上的,WSL Docker 的容器的部分性能會受到限制。對於一些高性能的應用和服務來說,傳統 Docker 還是更適合。

六、存在的問題

WSL Docker 在實際使用中,仍然存在一些問題和局限,主要包括:

1. 文件系統性能不高

WSL2 中的文件系統存在一些性能瓶頸,對於一些 IO 密集型應用和服務可能存在性能問題,建議使用 SSD 硬碟以提高性能。

2. 掛載點方式不靈活

WSL Docker 需要通過指定掛載點的方式,來訪問 Windows 中的文件系統,但是這種方式存在一些局限性,例如無法掛載遠程文件系統或者其他非 Windows 系統的分區。

3. 需要設置代理伺服器

WSL Docker 的容器無法直接訪問 Windows 下的網路資源,需要設置代理伺服器,這對於網路訪問要求嚴格的應用和服務來說,可能存在難題。

七、總結

WSL Docker 是一款基於 WSL2 的新型 Docker 解決方案,其能夠提供更加輕量、高效和友好的開發體驗,方便 Windows 下的開發者進行 Docker 開發。但是 WSL2 仍然存在一些局限性和問題,需要開發者謹慎使用。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/152538.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-13 06:05
下一篇 2024-11-13 06:05

相關推薦

  • docker-ce-18.03.1.ce-1.el7.centos.x86_64需要pigz這個依賴的解決方案

    當我們在linux centos系統中安裝docker-ce-18.03.1.ce-1.el7.centos.x86_64時,有時可能會遇到「nothing provides pi…

    編程 2025-04-29
  • 如何解決Docker+k8s報錯413 Request Entity Too Large

    對於使用Docker容器和Kubernetes集群的開發人員,在處理HTTP請求時,常常會遇到413 Request Entity Too Large的報錯。這通常是由於請求的大小…

    編程 2025-04-27
  • docker-compose編寫用法介紹

    本文將詳細介紹docker-compose編寫的各個方面,包括語法、常見命令等等,旨在幫助讀者更好的了解如何使用docker-compose。 一、docker-compose的語…

    編程 2025-04-27
  • Docker 垃圾電腦的解決方案

    Docker 是一種輕量級的容器化技術,可以在一個操作系統中,同時運行多個獨立的應用。在使用 Docker 的過程中,可能會出現 Docker 佔用大量硬碟空間,導致電腦變得極其緩…

    編程 2025-04-27
  • Docker掛載目錄–graph用法介紹

    本文將從如下幾個方面詳細闡述Docker掛載目錄–graph: 一、基本概念 在Docker中,鏡像是由一系列只讀層組成的文件系統。當我們啟動一個容器時,Docker會…

    編程 2025-04-27
  • Docker批量刪除容器詳解

    一、前言 Docker是一個開源的應用容器引擎,提供了一種輕量級容器化技術,方便快捷的進行應用打包、發布、運行。作為廣泛應用的技術之一,Docker是開發、測試、運維的得力助手。但…

    編程 2025-04-25
  • Docker鏡像管理

    一、查看所有鏡像 使用docker命令可以很輕鬆地查看所有已經構建好的鏡像,命令如下: docker images 該命令將列出所有本地docker主機上所有的鏡像: REPOSI…

    編程 2025-04-25
  • Docker內網穿透全解析

    一、什麼是Docker內網穿透 Docker是一個優秀的容器化技術,可以將應用程序和服務打包成輕量級的容器進行管理和部署。但是,Docker容器默認只能在內網環境中進行通信,如果需…

    編程 2025-04-25
  • Docker MySQL 5.7詳解

    一、Docker簡介 Docker是一種輕量級容器技術,可以輕鬆構建,發布和運行應用程序和服務。Docker容器類似於虛擬機,但不需要運行虛擬機本身,而是直接在主機上運行。這使得D…

    編程 2025-04-25
  • Docker-Compose教程詳解

    一、概述 Docker-Compose是Docker官方提供的一款使得在一個單機上運行多個容器應用程序變得簡單的工具。它使用YAML文件來配置應用程序的服務,此外還可以輕鬆地啟動、…

    編程 2025-04-25

發表回復

登錄後才能評論