WSL + Docker 使用 Laravel Sail 未果

2020-12-22 15:26:10 浏览数 (1)

昨天看到 Laravel 新出来一个工具 Laravel Sail ,简而言之就是 Laravel 自己出的 基于 Docker 的本地开发环境。

支持 macOS, Linux, and Windows (via WSL2)。

我现在手头上只有 Windows ,所以我们先用 Windows 来体验一下,因我机器已经装了 WSL 和 Docker,所以省略了这些安装过程。

接下来我说一下我趟过得坑,可能只适用于我的环境,你的环境有可能会一路顺风。

最开始我以为要在 WSL 中安装 Docker ,然后我突然发现,WSLdocker-for-windows 他们之间可以互通。所以不需要再 WSL 中安装 Docker。只需要简单的配置一下即可。

First

将 container 设置为“Linux container”,找到你的 Docker 图标 右击然后选择 Linux container,如果已经显示为"Switch to Windows containers",这说明已经在使用Linux container。否则,会显示为“Switch to Linux containers”。

Second

打开 Docker 的 Settings 的 General 勾选 Expose daemon on tcp://localhost:2375 without TLSUse the WSL 2 based engine

ok,接下来我们进到 wsl 中试一下,打卡一个目录 cmd 输入 wsl 会自动进入到 wsl 环境中,我们看下是否 可以在 wsl 中使用 docker ,

发现貌似还是不能用,似乎是不支持 wsl1,

代码语言:javascript复制
The command 'docker' could not be found in this WSL 1 distro.
We recommend to convert this distro to WSL 2 and activate
the WSL integration in Docker Desktop settings.

See https://docs.docker.com/docker-for-windows/wsl/ for details.

ok。点击 https://docs.docker.com/docker-for-windows/wsl/ 链接,我们去看下,定位到 第 6 步,试着看下版本是不是不对

检查 wsl 模式

代码语言:javascript复制
wsl.exe -l -v

之后列出的信息如下所示,版本为1

ok,接下来,我们把版本升级 2 上。

代码语言:javascript复制
 wsl.exe --set-version Ubuntu-20.04 2

将v2设置为以后安装的默认版本

代码语言:javascript复制
wsl.exe --set-default-version 2

接下来我们再看下使用 wsl.exe -l -v 命令列出的版本

可以看到,版本已经为 2 了,那么再次进到 wsl 环境中试下,不出意外的话已经可以使用 docker 命令了

代码语言:javascript复制
docker

OK,既然环境已经没有问题了,我们看下 Laravel Sail 是如何使用的。

首先安装 Laravel 项目

代码语言:javascript复制
composer create-project laravel/laravel sail

看文档是直接可以使用命令./vendor/bin/sail up 即可

安装完成 进到 sail 项目目录里

代码语言:javascript复制
cd sail
./vendor/bin/sail up

哇塞,原来真的可以了

...........运行了许久 还是报错了....

暂时先放弃了,稍后再尝试吧......

参考链接: https://zhuanlan.zhihu.com/p/61542198

https://docs.docker.com/docker-for-windows/wsl/

https://laravel.com/docs/8.x/sail

0 人点赞