安装Docker

安装WSL2

WSL,即Windows Subsystem on Linux,中文叫“适用于 Linux 的 Windows 子系统”。可以在windows里,直接启动一个linux系统。因为docker依赖linux内核,只能在linux下使用,windows就需要安装linux虚拟机来运行,而微软已经在win10内置了一个轻量级虚拟机,WSL2 便是运行在虚拟机上的一个完整的 linux 内核,所以需要利用WSL2安装docker。

微软要求 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11

设置->更新和安全->操作系统内部版本信息

下载wsl2需要的linux内核:

网址: [https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-kernel](https://blog.csdn.net/m0_68988603/article/details/123884239?ops_request_misc={"request_id"%3A"169422368816800226549539"%2C"scm"%3A"20140713.130102334.."}&request_id=169422368816800226549539&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-123884239-null-null.142^v93^chatsearchT3_2&utm_term=docker Windows&spm=1018.2226.3001.4187)

点击下载最新的更新包,下好后双击运行安装即可。

打开系统虚拟机平台和WSL

控制面板->程序->启用或关闭Windows功能->

勾选 适用于Linux的Windows子系统

勾选 虚拟机平台

将WSL2设置为默认版本:管理员身份运行Windows PowerShell,运行下面的命令。

1
wsl --set-default-version 2

image-20230914170116226

安装Docker Desktop for Windows

网上有的教程是先在WSL2里面安装了linux,然后再装docker。我暂时还没有很多实际使用需求,所以我认为应该直接安装windows版就可以了。

官网下载安装程序:https://www.docker.com/get-started/

下好后直接双击运行安装即可(建议安装时不要使用校园网,不然有可能会出现一些问题,我放在后面解释)。

设置里勾选基于wsl2的引擎(我的默认勾选了)

用PowerShell运行 wsl -l -v会发现已经创建了两个发行版了

image-20230914171039958

更改数据存储位置

Windows下的docker默认安装在C盘,所以为了拯救我们可怜的C盘,就需要把数据存储到其他盘。

1.停止docker服务

image-20230914171749005

2.备份数据到另一个文件夹

PowerShell运行

1
wsl --export docker-desktop-data "D:\work\study\BUPT\computer\DockerData\docker-desktop-data.tar"

3.删除原有数据

1
wsl --unregister docker-desktop-data

4.更改数据存储盘并恢复数据

1
wsl --import docker-desktop-data "D:\work\study\BUPT\computer\DockerData" "D:\work\study\BUPT\computer\DockerData\docker-desktop-data.tar" --version 2

即将备份数据导入到新的虚拟盘,且指定虚拟盘的存放路径为E:\DockerData,导入完成后在该目录下会存在一个ext4.vhdx的虚拟磁盘路径

然后启动docker就可以啦

实验环境配置

安装docker后,由于国内从官方的dockerHub拉取镜像速度较慢,可以利用国内的镜像源

1
2
3
4
5
6
7
8
9
10
11
{
"registry-mirrors": [
"https://1nj0zren.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"http://f1361db2.m.daocloud.io",
"https://registry.docker-cn.com"
],
"insecure-registries": [],
"debug": true,
"experimental": false
}
  1. 在本机创建一个文件夹专门存放labproject,路径中不要包含中文
  2. 编辑./docker_script/docker-compose.yml,将替换为第一步中的路径 注意:如假设路径为

E:\buptcompiler,替换的路径应为 /e/buptcompiler

  1. 创建image并部署container:进入docker_script目录下,CMD运行 docker-compose up -d

  2. docker desktop中启动部署好的container,该container应该是docker_script下的compiler

  3. 执行container:在CMD运行 docker exec -it compiler /bin/sh

  4. compiler中的/mnt/Workspace即为挂载的共享目录(主机上为E:\buptcompiler

  5. labproject作业下载后放到主机的共享目录中,推荐使用VSCode编写,然后在compiler中编译、运行测试

  6. 部署好实验环境后,再次进行实验时执行第4、5步即可运行容器,进入实验环境,第5步中不一定在CMD运行命令,可以利用VSCode的终端运行命令。