谷动谷力

标题: Windows WSL 2 上的 Docker 远程容器入门 [打印本页]

作者: sunsili    时间: 2023-6-22 15:16
标题: Windows WSL 2 上的 Docker 远程容器入门
Windows WSL 2 上的 Docker 远程容器入门




本文内容显示另外 2 个
本分步指南将通过使用 WSL 2(适用于 Linux 的 Windows 子系统,版本 2)设置 Docker Desktop for Windows,帮助开始使用远程容器进行开发。
Docker Desktop for Windows 为生成、交付和运行 Docker 化的应用提供了一个开发环境。 通过启用基于 WSL 2 的引擎,可以在同一计算机上的 Docker Desktop 中运行 Linux 和 Windows 容器。 (Docker Desktop 免费供个人和小型企业使用,有关专业、团队或企业定价的信息,请参阅 Docker 站点常见问题解答)。
备注
建议使用 Docker Desktop,因为它与 Windows 和 适用于 Linux 的 Windows 子系统 集成。 但是,虽然 Docker Desktop 支持同时运行 Linux 和 Windows 容器,但 不能 同时运行这两个容器。 若要同时运行 Linux 和 Windows 容器,需要在 WSL 中安装并运行单独的 Docker 实例。 如果需要同时运行容器,或者只想直接在 Linux 分发版中安装容器引擎,请按照该容器服务的 Linux 安装说明进行操作,例如 在 Ubuntu 上安装 Docker 引擎安装 Podman 以运行 Linux 容器

Docker 容器概述
Docker 是一种工具,用于创建、部署和运行应用程序(通过使用容器)。 容器使开发人员可以将应用与需要的所有部件(库、框架、依赖项等)打包为一个包一起交付。 使用容器可确保此应用的运行与之前相同,而不受任何自定义设置或运行该应用的计算机上先前安装的库的影响(运行应用的计算机可能与用于编写和测试应用代码的计算机不同)。 这使开发人员可以专注于编写代码,而无需操心将运行代码的系统。
Docker 容器与虚拟机类似,但不会创建整个虚拟操作系统。 相反,Docker 允许应用使用与运行它的系统相同的 Linux 内核。 这使得应用包能够仅要求主计算机上尚未安装的部件,从而降低包大小以及提高性能。
将 Docker 容器与 Kubernetes 等工具结合使用以实现持续可用性是容器普及的另一个原因。 这样就可以在不同的时间创建应用容器的多个版本。 无需关闭整个系统进行更新或维护,每个容器 (及其特定微服务) 可以动态替换。 你可以准备一个包含所有更新的新容器,将该容器设置用于生产,并在新容器准备就绪后直接指向该容器。 你还可以使用容器对不同版本的应用进行存档,如有需要,还可将其作为安全回退保持运行。
若要了解详细信息,检查 Docker 容器简介
先决条件
备注
WSL 可以在 WSL 版本 1 或 WSL 2 模式下运行发行版。 可通过打开 PowerShell 并输入以下内容进行检查:wsl -l -v。 通过输入 wsl --set-version <distro> 2,确保发行版设置为使用 WSL 2。 将 <distro> 替换为发行版名称(例如 Ubuntu 18.04)。
在 WSL 版本 1 中,由于 Windows 和 Linux 之间的根本差异,Docker 引擎无法直接在 WSL 内运行,因此 Docker 团队使用 Hyper-V VM 和 LinuxKit 开发了一个替代解决方案。 但是,由于 WSL 2 现在在具有完整系统调用容量的 Linux 内核上运行,因此 Docker 可以在 WSL 2 中完全运行。 这意味着 Linux 容器可以在没有模拟的情况下以本机方式运行,从而在 Windows 和 Linux 工具之间实现更好的性能和互操作性。

安装 Docker Desktop
借助 Docker Desktop for Windows 中支持的 WSL 2 后端,可以在基于 Linux 的开发环境中工作并生成基于 Linux 的容器,同时使用 Visual Studio Code 进行代码编辑和调试,并在 Windows 上的 Microsoft Edge 浏览器中运行容器。
若要安装 Docker(在已安装 WSL 之后):
提示
下面是一些需要了解的有用 Docker 命令:

使用 VS Code 在远程容器中开发
若要开始将 Docker 与 WSL 2 配合使用来开发应用,建议使用 VS Code 以及 WSL、开发容器和 Docker 扩展。
让我们使用 Docker 为现有应用项目创建开发容器。
现在,你已使用 Docker Desktop 成功配置了远程开发容器,该容器由 WSL 2 后端提供支持,你可以使用 VS Code 对该容器进行编码、生成、运行、部署或调试!
故障排除
已弃用的 WSL docker 上下文
如果你使用的是 Docker for WSL 的早期技术预览版,则可能有一个名为“wsl”的 Docker 上下文,该上下文现已弃用。 可以使用以下命令进行检查:docker context ls。 如果想要同时对 Windows 和 WSL2 使用默认上下文,可以使用 docker context rm wsl 命令删除此“wsl”上下文,以避免出现错误。
使用此已弃用的 wsl 上下文可能遇到的错误包括:docker wsl open //./pipe/docker_wsl: The system cannot find the file specified.error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_wsl/v1.40/images/json?all=1: open //./pipe/docker_wsl: The system cannot find the file specified.
有关此问题的详细信息,请参阅如何在 Windows 10 上的适用于 Linux 的 Windows 系统 (WSL2) 中设置 Docker
查找 docker 映像存储文件夹时遇到问题
Docker 创建了两个用于存储数据的发行版文件夹:
可以通过打开 WSL Linux 发行版并输入 explorer.exe . 以在 Windows 文件资源管理器中查看文件夹来查找这些文件夹。 Enter: \\wsl\<distro name>\mnt\wsl<distro name> 替换为分发 (的名称。Ubuntu-20.04) 查看这些文件夹。
如需查找有关在 WSL 中查找 docker 存储位置的详细信息,请参阅此 WSL 存储库中的问题或此 StackOverlow 帖子
有关 WSL 中常规故障排除问题的更多帮助,请参阅故障排除文档。
其他资源






欢迎光临 谷动谷力 (http://bbs.sunsili.com/) Powered by Discuz! X3.2