在适用于 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)中注册。

来源

每个步骤的更详细描述可以在这里找到:

来源: habr.com

添加评论