wsl使用docker_在WSL|wsl使用docker_在WSL 2的Docker中开始使用Linux容器

wsl使用docker
当微软在2018年推出其Linux的Windows子系统(WSL)时,很清楚的原因:它想为开发人员构建现代云应用程序提供工具。 微软需要一种方法来提供容器开发,同时关注在其Azure Kubernetes Service上运行的Azure托管的分布式应用程序。
但是,原始的WSL平台存在问题。 在Windows上原生运行Linux容器并不容易。 结合确保WSL的仿真层可以支持Linux应用程序和服务,很明显,基于仿真的方法无法满足大多数开发人员的需求。 这导致WSL平台的重新设计,并在2019年初推出了带有完整Linux内核的WSL2。

[ 到云! 实际的容器迁移 。 | 在InfoWorld的Docker初学者指南中探究炙手可热的开源框架。 ]
当前,Microsoft的WSL 2预览版将随Windows Insider 20H1构建一起推出。 正如我在WSL2上的前一篇文章中所指出的那样 ,它的大部分工作原理是基于Microsoft与Docker工程师之间的合作:LCOW( Windows上的Linux容器 ),旨在简化直接在Windows上运行Linux容器的过程。 通过使用管理程序来托管Linux OS和Docker平台的相关元素,Windows开发工具可以访问托管容器的内容。 现在,这种瘦管理程序方法可托管整个WSL环境,从而允许Linux应用程序和容器在Windows系统上本地运行。
在推出WSL2的同时,Docker宣布了适用于Windows的Docker桌面 的新版本,以及可与WSL2配合使用的Docker应用程序的新版本,最终支持Windows上的本机Linux容器。
该新的WSL2版本的Docker Desktop现在可以从Docker作为Beta版获得,需要一个Docker帐户。 新版本发布后不久,我就签约了,上周终于可以使用新版本了。 我现在已经将其安装在Fast Ring测试PC上,准备与Visual Studio Code的新远程开发工具一起试用,这是为Linux容器应用程序构建端到端开发工具链的一部分。
使Docker在WSL2上运行 在运行新的Docker桌面之前,需要满足一些先决条件。 首先,也是最重要的是,Docker Desktop期望Ubuntu是您的默认WSL发行版,因此请使用wsl命令行工具来确保Ubuntu首先在WSL2中运行,并且它是默认的。 如果它在WSL1中运行,请使用命令wsl –set-version Ubuntu 2进行切换,然后使用wsl -l来检查它是否为默认设置。 要将其设置为默认类型,请输入wsl -s Ubuntu 。 重要说明:您需要运行Ubuntu 18.04,因此可以直接从Windows应用商店下载它,也可以使用sudo do-release-upgrade将现有的Ubuntu WSL安装sudo do-release-upgrade到最新版本。

在准备好使用Ubuntu的情况下,您现在可以设置Docker Desktop。 下载预览版Docker Desktop安装程序后 ,运行它。 系统将提示您选择使用Linux还是Windows容器(安装后可以更改)。 默认为使用Linux容器,因此单击“确定”。 然后,安装程序将解压缩所有必需的文件,并设置到WSL2的文件系统的适当映射。 安装完成后,它将使您退出Windows,一旦重新登录就应该可以开始使用。
使用WSL2运行Docker桌面 当您启动Docker Desktop时,Windows任务栏中会出现一个新的Docker图标(如果看不到,请检查通知区域)。 右键单击它,然后选择“ WSL Tech Preview”以启动Docker WSL2安装工具。 这将检查Windows版本是否正确,确保您将Ubuntu作为WSL2实例运行,并且它是默认版本。 如果缺少任何先决条件,安装程序将通知您需要更改的内容。 您必须先解决该问题,才能安装WSL 2 Docker工具。

一切准备就绪后,您可以启动Docker桌面并启用WSL 2 Docker守护程序。 要检查它是否正在运行,请打开一个Ubuntu终端,并使用docker context ls检查应自动创建的Docker上下文。 这应该表明您的默认Docker实例正在Ubuntu中运行,并包含当前端点和使用的协调器的详细信息。 默认情况下,协调器是Docker的群策群力,因为WSL2容器尚不支持Kubernetes。
现在,您可以从自己或从自己的存储库开始安装和运行Docker容器。 一个有用的快速测试是从Ubuntu WSL2终端下载并运行Docker自己的“ hello-world”容器: sudo docker run hello-world docker sudo docker run hello-world 。 这将显示一条简短的控制台消息,表明它已成功运行。
在WSL2上运行Docker之后,您现在就可以开始在Windows下构建完整的Linux开发工具链。 我从Visual Studio Code开始,现在它提供了远程开发工具 ,该工具将Windows VS Code UI连接到在Linux中运行的调试和文件系统访问组件,在本例中为WSL2的Ubuntu。 不需要任何配置。 从Visual Studio Code中,您可以打开到WSL2的远程连接,并且可以完全访问包含WSL2 Linux文件系统的虚拟硬盘驱动器,还可以使用VS Code的内置终端访问WSL2命令行。
在Windows上为Linux容器构建代码 使用WSL2进行容器开发的有趣方面之一是能够混合和匹配开发环境。 我在WSL2测试机上安装了.Net命令行工具,因此我用它在Windows文件系统中制作了一个简单的.Net Core MVC(模型-视图-控制器)应用程序。 然后,使用远程处理从在WSL2中运行的VS Code终端,使用Ubuntu bash提示符将.Net项目从Windows文件系统复制到Linux文件系统,然后在VS Code中创建适当的dockerfile和.dockerignore并保存它们直接进入WSL2 Linux文件系统。

有了一个dockerfile和一个.Net Core应用程序并准备就绪,就可以使用命令行Docker工具组装容器,并从Microsoft的Docker存储库中提取适当的映像以确保.Net Core运行时到位。 Docker创建了应用程序的容器后,便可以启动它,为其命名并映射到适当的端口。 由于最新版本的WSL2改进了来自外部应用程序的网络地址映射,因此很容易在我的开发系统上启动浏览器并连接到在Linux上运行的ASP.Net Core应用程序。
用于Windows的Docker和WSL2的结合无疑简化了在Windows开发系统上构建Linux容器应用程序的过程。 它并不完美,跨越两个Windows个性之间的界限时仍然存在问题。 但是,提高生产率,减少开销和提高速度是值得的。 观察Docker桌面和WSL2在接下来的几个月中将如何发展将是很有趣的,尽管即使在这些早期阶段,该组合也已可以使用。

翻译自: https://www.infoworld.com/article/3432765/get-started-with-linux-containers-in-docker-on-wsl-2.html
【wsl使用docker_在WSL|wsl使用docker_在WSL 2的Docker中开始使用Linux容器】wsl使用docker

    推荐阅读