windows10下部署WSL2的docker的lnmp环境

Windows官方攻略推荐在Windows下安装docker,比较麻烦。这边尝试在WSL2中直接通过docker搭建lnmp环境。

安装WSL

官方文档
官方文档中介绍了两种方式安装WSL,一种是简化安装,输入一行命令即可。另一种是手动安装,有6个步骤。
使用简化安装需要加入 Windows 预览体验计划,我选用的是手动安装。以下是安装方法:

  • 组合键win+x,以管理员身份打开 PowerShell 并运行:
> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  • 重新启动 计算机,以完成 WSL 安装并更新到 WSL 2。
  • 下载 并安装Linux 内核更新包。(官方下载地址
  • 将wsl2设为默认:
> wsl --set-default-version 2
  • 打开 Microsoft Store,并选择你偏好的 Linux 分发版。(我选的Ubuntu20.4)
  • 验证安装:
> wsl --list --verbose
  NAME            STATE           VERSION
* Ubuntu-20.04    Running         2

打开下好的Ubuntu20.4,第一次进入需要设置账号密码,输入即可。
至此,WSL2已安装完成。

可选:安装 Windows 终端

新版windows多窗口终端界面好看,可以使用ctrl+c和ctrl+v,推荐使用。
安装文档
下载地址

安装docker

安装方法参考:官方文档
进入Ubuntu20.4,输入

$ sudo apt-get remove docker docker-engine docker.io containerd runc
$ sudo apt-get update
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
$ echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

验证安装:

$ sudo docker version

启动服务

$ sudo service docker start

安装docker-composer(可选)

$ sudo apt install python3
$ sudo apt install python3-pip
$ sudo python3 -m pip install --upgrade pip
$ pip3 install docker-compose

验证docker-composer

docker-compose version

现在可以去github找一个docker-lnmp跑起来就行了。

常见问题
  • 文件共享:在WSL中,访问/mnt目录,即可访问windows下的硬盘。在Windows中的资源管理中输入\\wsl$即可访问WSL中的文件系统。
  • 文件权限:Windows下挂载的文件,全部是777,应该不存在无法访问的问题。
  • IP地址:重启后,通过ip addr发现,WSL的IP地址也会改变。固化方法:将以下文件保存为bat,每次需要wsl时执行一下:(需要使用管理员权限执行)
@echo off
setlocal enabledelayedexpansion

wsl -u root service docker start | findstr "Starting Docker" > nul
if !errorlevel! equ 0 (
    echo docker start success
    :: set wsl2 ip
    wsl -u root ip addr | findstr "192.168.169.2" > nul
    if !errorlevel! equ 0 (
        echo wsl ip has set
    ) else (
        wsl -u root ip addr add 192.168.169.2/28 broadcast 192.168.169.15 dev eth0 label eth0:1
        echo set wsl ip success: 192.168.169.2
    )

    :: set windows ip
    ipconfig | findstr "192.168.169.1" > nul
    if !errorlevel! equ 0 (
        echo windows ip has set
    ) else (
        netsh interface ip add address "vEthernet (WSL)" 192.168.169.1 255.255.255.240
        echo set windows ip success: 192.168.169.1
    )
)
pause

执行后,会给WSL新增一个固定ip:192.168.169.2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值