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/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

发表回复

登录后才能评论