WSL2下运行Docker

目录

WSL2来了

安装WSL2功能模块

安装Linux内核

安装Linux发行版

下载并安装 Docker Desktop

限制WSL对Windows机器资源利用

WSL命令

FAQ


WSL2来了

为什么要升级到WSL2?
第一代的WSL 并不“完整”。说到底 WSL 还只是一个用于访问 Linux 环境的兼容层,并没有实现 Linux 内核的完整功能。而 WSL2 基于Hyper-V功能的子集提供了“真正的 Linux 内核”。

局限:

The host networking driver only works on Linux hosts, and is not supported on Docker Desktop for Mac, Docker Desktop for Windows, or Docker EE for Windows Server.(Use host networking | Docker Documentation

安装WSL2功能模块

第一步:启动WSL:如果之前没有用过 WSL,那么首先需要安装 Windows 10 的 WSL 功能。打开 PowerShell ,使用管理员权限运行:( 执行完下面的命令,建议执行第二步,更新到WSL 2,但是如果你只是想安装WSL1,现在就可以重启电脑生效,然后执行“安装Linux发行版”。)

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

第二步:更新到WSL2:必须是Win10 Version 1903 or higher, with Build 18362 or higher。详情请参考Install WSL | Microsoft Docs链接。如果满足要求则只需下面的命令使能VirtualMachinePlatform,然后重启机器

windows11在powershell下,执行wsl --update即可(确保系统更新服务开启);完事执行wsl --shutdown 重新计入wsl。

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

安装Linux内核

下载Linux内核更新包:WSL2 Linux kernel update package for x64 machines。双击wsl_update_x64.msi执行安装

安装Linux发行版

在安装Linux发行版之前,首先执行下面的命令,设置WSL2作为默认的WSL版本。

wsl --set-default-version 2

 然后,运行Microsoft Store,搜索Linux关键字即可。例如:Ubuntu-20.04 LTS,选择下载安装即可。

在 PowerShell 中使用如下命令可以检查是否安装成功:

wsl --list --verbose
或
wsl.exe -l -v
  NAME                   STATE           VERSION
* Ubuntu-20.04           Running         2

 WSL Integration默认运行在默认的WSL下,如果有好几个Linux发行版,可以执行下面的命令设置默认发行版,在默认发行版前会有*标识:

wsl --set-default <distro name>
例如:
wsl --set-default Ubuntu-20.04

下载并安装 Docker Desktop

下载和安装过程略。安装成功后,打开Docker Desktop,点击右上角Setting-Resources-WSL Integration

此时执行bash ~,然后执行docker命令就可以执行了。

限制WSL对Windows机器资源利用

【Windows Build 19041和更高版本中可用】执行wsl进入分发版Linuxshell环境,默认当前目录应该是:/mnt/c/Users/用户名。

创建.wslconfig文件,写入:

[wsl2]
memory=4GB
processors=2

配置私有镜像仓库

默认在Docker Desktop安装用户下,例如:C:\Users\user1\.docker\daemon.json。将如下内容追加上,然后重启Docker服务。在WSL中直接修改/etc/docker/daemon.json是无效的。

{
……
 "insecure-registries": ["192.168.11.XXX"]  
}

WSL命令

# 设置默认分发版
wsl -s <DistributionName>, wsl --setdefault <DistributionName>
# 列出分发版
wsl -l --running, wsl --list --running
wsl -l --all, wsl --list --all
# 取消注册和重新安装分发版
wsl --unregister <DistributionName>, wslconfig /u, /unregister <DistributionName>
# 以特定用户的身份运行
wsl -u <Username>, wsl --user <Username>
# 运行特定的分发版
wsl -d <DistributionName>, wsl --distribution <DistributionName>

# 更改分发的默认用户
<DistributionName> config --default-user <Username>
> wsl -l -q
Ubuntu-20.04
> ubuntu2004 config --default-user root
> bash ~
root@win10-home-liuyl:~# pwd
/root

# 关闭wsl虚机

wsl --shutdown

参考:https://docs.microsoft.com/zh-cn/windows/wsl/wsl-config
 

FAQ

Q1:apt-get -y upgrade太慢

解决:更新Ubuntu 20.04镜像源为aliyun,参考:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区

Q2:Microsoft Store打开报 “microsoft store 无法加载页面。代码代码: 0x80131500”

解决:关于0x80131500错误的问题,打开IE浏览器,点击设置>>internet选项>>高级选项卡>>安全,查看“使用TLS1.2”和其他的TLS选项是否没有勾选,没有的话,勾选了。

在WSL中运行Docker有两种方式,下面分别介绍这两种方式。 方式一:使用WSL 2和Docker Desktop 1. 确保你的Windows版本是Windows 10版本2004或更高,并且已启用WSL 2。 2. 安装Docker Desktop for Windows。可以从Docker官方网站下载并安装。 3. 在Docker Desktop中启用WSL 2后端。在Docker Desktop的设置中,选择"General"选项卡,然后勾选"Use the WSL 2 based engine"选项。 4. 在WSL中安装所需的Linux发行版。可以从Microsoft Store中安装Ubuntu 18.04 LTS。 5. 在WSL中安装Docker CLI。打开WSL终端,运行以下命令: ```shell sudo apt-get update sudo apt-get install docker.io ``` 6. 启动Docker服务。运行以下命令: ```shell sudo service docker start ``` 7. 现在你可以在WSL中使用Docker了。可以运行`docker version`命令来验证安装是否成功。 方式二:使用WSL 1和Docker Machine 1. 确保你的Windows版本支持WSL 1,并且已启用WSL 1。 2. 在WSL中安装所需的Linux发行版。可以从Microsoft Store中安装Ubuntu 18.04 LTS。 3. 在WSL中安装Docker CLI。打开WSL终端,运行以下命令: ```shell sudo apt-get update sudo apt-get install docker.io ``` 4. 安装Docker Machine。可以从Docker官方网站下载并安装。 5. 创建一个Docker Machine。运行以下命令: ```shell docker-machine create --driver virtualbox default ``` 6. 设置环境变量。运行以下命令: ```shell eval $(docker-machine env default) ``` 7. 现在你可以在WSL中使用Docker了。可以运行`docker version`命令来验证安装是否成功。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值