目录

  • 安装Docker
  • 可能出现的问题
  • 内核需更新
  • Linux 内核更新包
  • 将 WSL 2 设置为默认版本
  • An error occurred
  • 安装镜像
  • 使用Microsoft Store安装所选的 Linux 分发
  • 手动安装镜像及文件夹的共享
  • Docker run 命令
  • Windows Terminal的安装
  • 在Windows Terminal中直接运行已有的容器


Windows 10 20H2


安装Docker

下载链接

可能出现的问题

内核需更新

wsl2 开启虚拟化技术 wsl2能代替虚拟机吗_linux


根据旧版 WSL 的手动安装步骤步骤 4后做就行:

Linux 内核更新包

适用于 x64 计算机的 WSL2 Linux 内核更新包

如果使用的是 ARM64 计算机,请下载 ARM64 包。 如果不确定自己计算机的类型,请打开命令提示符或 PowerShell,并输入:systeminfo | find “System Type”。 Caveat: 在非英文版 Windows 上,你可能必须修改搜索文本,对“System Type”字符串进行翻译。 你可能还需要对引号进行转义来用于 find 命令。 例如,在德语版中使用 systeminfo | find ‘“Systemtyp”’。

wsl2 开启虚拟化技术 wsl2能代替虚拟机吗_wsl2 开启虚拟化技术_02

将 WSL 2 设置为默认版本

打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:

wsl --set-default-version 2

如果失败,可能需要事先以管理员方式启动cmdpowershell
使用

netsh winsock reset

命令重置windows网络设置

An error occurred

wsl2 开启虚拟化技术 wsl2能代替虚拟机吗_docker_03


以管理员方式启动cmdpowershell

使用

netsh winsock reset

命令重置windows网络设置

安装镜像

使用Microsoft Store安装所选的 Linux 分发

打开Microsoft Store,并选择你偏好的 Linux 分发版。

wsl2 开启虚拟化技术 wsl2能代替虚拟机吗_linux_04


在分发版的页面中,选择“安装”。

wsl2 开启虚拟化技术 wsl2能代替虚拟机吗_wsl2 开启虚拟化技术_05


第一次启动将会提示输入用户名和密码。

手动安装镜像及文件夹的共享

Docker run 命令

摘自Docker run 命令 —— 菜鸟教程docker run :创建一个新的容器并运行一个命令

语法

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS说明:

-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
–name=“名称”: 为容器指定一个名称;
–dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
–dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h “mars”: 指定容器的hostname;
-e username=“ritchie”: 设置环境变量;
–env-file=[]: 从指定文件读入环境变量;
–cpuset=“0-2” or --cpuset=“0,1,2”: 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
–net=“bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
–link=[]: 添加链接到另一个容器;
–expose=[]: 开放一个端口或一组端口;
–volume , -v: 绑定一个卷

以管理员方式启动cmdpowershell
使用

docker run -it --name robot_controller -v D:\Work\Robot\Workspace\openRCio-stu:/openRC ansible/ubuntu14.04-ansible /bin/bash

拉取ubuntu14.04-ansible镜像,创建一个名为robot_controller的容器并运行,其中D:\Work\Robot\Workspace\openRCio-stu为要共享文件夹的Windows下的路径,/openRC为该文件夹映射在容器内的路径,镜像名为ansible/ubuntu14.04-ansible

如下图可见,已成功共享该文件夹

wsl2 开启虚拟化技术 wsl2能代替虚拟机吗_Windows_06


wsl2 开启虚拟化技术 wsl2能代替虚拟机吗_Windows_07

Windows Terminal的安装

在Microsoft Store中安装就行。

wsl2 开启虚拟化技术 wsl2能代替虚拟机吗_docker_08


wsl2 开启虚拟化技术 wsl2能代替虚拟机吗_Windows_09


设置里可设定外观

wsl2 开启虚拟化技术 wsl2能代替虚拟机吗_Windows_10


打开Ubuntu

wsl2 开启虚拟化技术 wsl2能代替虚拟机吗_wsl2 开启虚拟化技术_11


wsl2 开启虚拟化技术 wsl2能代替虚拟机吗_docker_12

在Windows Terminal中直接运行已有的容器

在cmd/powershell中先使用

docker ps -a

命令查看已有容器的ID

wsl2 开启虚拟化技术 wsl2能代替虚拟机吗_运维_13


Windows Terminal新建一个配置,命令行为

docker start -i 容器ID

wsl2 开启虚拟化技术 wsl2能代替虚拟机吗_wsl2 开启虚拟化技术_14


此后便可在下拉菜单中直接启动之前的容器

wsl2 开启虚拟化技术 wsl2能代替虚拟机吗_运维_15


wsl2 开启虚拟化技术 wsl2能代替虚拟机吗_运维_16