
要在WSL中的docker上完全使用该项目,您需要安装WSL2。在编写本文时,您只能将其用作Windows Insider程序的一部分(WSL 2在版本18932及更高版本中可用)。 还值得一提的是,必须安装Windows 10 Pro版本才能安装和配置Docker Desktop。
重要! WSL 2不再需要Windows 10的DockerDesktop。Ubuntu中的Docker Pro部分介绍了如何使用WSL 2。
第一步
输入初步评估程序并安装更新后,您需要安装Linux发行版(在本示例中,使用Ubuntu 18.04)和带有WSL 2 Tech Preview的Docker桌面:
- Docker桌面WSL 2技术预览
- Windows应用商店中的Ubuntu 18.04
在这两段中,我们都遵循所有安装和配置说明。
安装Ubuntu 18.04发行版
在启动Ubuntu 18.04之前,必须通过在PowerShell中运行两个命令来启用Windows WSL和Windows虚拟机平台:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
(需要重新启动计算机)Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
在您需要确保我们将使用WSL v2之后。 为此,请在WSL或PowerShell终端中,依次执行以下命令:
wsl -l -v
查看当前安装的版本。 如果为1,则进一步移至列表下方wsl --set-version ubuntu 18.04 2
升级到版本2wsl -s ubuntu 18.04
将Ubuntu 18.04安装为默认发行版
现在您可以启动Ubuntu 18.04,进行配置(指定用户名和密码)。
安装Docker桌面
重要! WSL 2不再需要Windows 10的DockerDesktop。Ubuntu中的Docker Pro部分介绍了如何使用WSL 2。
在安装过程中,请按照说明进行操作。 安装后,计算机将需要重新启动,并在首次启动时才能打开Hyper-V(由于受支持,因此需要Windows 10 Pro版本)。
重要! 如果Docker Desktop报告被防火墙阻止,请转到防病毒设置并对防火墙规则进行以下更改(在本示例中,将Kaspersky Total Security用作防病毒软件):
- 转到设置->保护->防火墙->配置数据包规则->本地服务(TCP)->更改
- 从本地端口列表中删除端口445
- 保存到
启动Docker Desktop之后,在其上下文菜单中,选择WSL 2 Tech Preview项目。

在打开的窗口中,单击开始按钮。

现在docker和docker-compose在WSL发行版中可用。
重要! 更新后的Docker桌面现在在设置窗口中具有一个带有WSL的选项卡。 它包括对WSL的支持。

重要! 除了“ WSL激活”复选框之外,您还需要在“资源”->“ WSL集成”选项卡中激活WSL分发。

发射
意外的是尝试提高Windows用户目录中的项目容器时发生的许多问题。
与运行bash脚本有关的各种错误(通常在构建用于安装必要的库和发行版的容器时开始)以及Linux开发中常见的其他错误,使我们考虑将项目直接放置在Ubuntu 18.04用户目录中。
。
从解决方案到上一个问题,以下内容是:如何通过Windows上安装的IDE处理项目文件。 作为“最佳实践”,我为自己找到了一个选择-通过VSCode工作(尽管我是PhpStorm的粉丝)。
下载并安装VSCode之后,我们将其安装在Remote Development扩展包中 。
安装以上扩展程序后,只需运行code .
命令code .
在运行VSCode的项目目录中。
在此示例中,需要nginx才能通过浏览器访问容器。 通过sudo apt-get install nginx
安装它不是那么简单。 首先,必须通过执行sudo apt update && sudo apt dist-upgrade
来更新WSL发行sudo apt update && sudo apt dist-upgrade
,然后才开始安装nginx。
重要! 所有本地域不在Windows发行版的/ etc / hosts文件中注册(甚至没有注册),但在Windows 10中的hosts文件(通常位于C:\ Windows \ System32 \ drivers \ etc \ hosts)中注册。
关于Ubuntu中的Docker
正如知识渊博的用户在注释注释中所提示的那样,WSL 2发行版中的docker绝对起作用。 这使您无需在Windows 10上安装Docker Desktop,并解决了使用Windows 10 Pro版本的问题(对Pro的需求恰恰与使用Docker Desktop有关)。 根据本地站点的说明进行安装:
如果docker在执行命令时开始在守护程序中宣誓就职,请检查服务的状态-在我的情况下,例如nginx,它不会自动启动。 使用sudo service docker start
运行它。
如果在组装时出现错误“服务未能构建:cgroups:找不到cgroup挂载目标:未知”,请尝试以下解决方案(不是我的,我在源代码中找到了链接): sudo mkdir /sys/fs/cgroup/systemd
; sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd
。
通过PhpStorm处理项目
若要提供通过PhpStorm在WSL中处理项目的功能,必须执行以下操作:
- 以管理员身份运行Windows 10命令提示符;
- 在Windows 10命令提示符下,运行命令
mklink /DC:\project_directory \\wsl$\Ubuntu\home\user\project_directory
,这将创建一个指向项目文件夹的符号链接。
之后,在IDE中,您可以沿路径C:\ project_directory打开项目。
PS Dmitry Simagin ,谢谢您的决定。
资料来源
可以在这里找到每个步骤的详细说明: