Windows下安装Docker
安装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 |
安装Docker Desktop for Windows
网上有的教程是先在WSL2里面安装了linux,然后再装docker。我暂时还没有很多实际使用需求,所以我认为应该直接安装windows版就可以了。
官网下载安装程序:https://www.docker.com/get-started/
下好后直接双击运行安装即可(建议安装时不要使用校园网,不然有可能会出现一些问题,我放在后面解释)。
设置里勾选基于wsl2的引擎(我的默认勾选了)
用PowerShell运行 wsl -l -v
会发现已经创建了两个发行版了
更改数据存储位置
Windows下的docker默认安装在C盘,所以为了拯救我们可怜的C盘,就需要把数据存储到其他盘。
1.停止docker服务
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 | { |
- 在本机创建一个文件夹专门存放
lab
及project
,路径中不要包含中文 - 编辑
./docker_script/docker-compose.yml
,将替换为第一步中的路径 注意:如假设路径为
E:\buptcompiler
,替换的路径应为 /e/buptcompiler
创建
image
并部署container:
进入docker_script
目录下,CMD运行docker-compose up -d
docker desktop
中启动部署好的container
,该container
应该是docker_script
下的compiler
执行
container:
在CMD运行docker exec -it compiler /bin/sh
compiler
中的/mnt/Workspace
即为挂载的共享目录(主机上为E:\buptcompiler
)lab
和project
作业下载后放到主机的共享目录中,推荐使用VSCode
编写,然后在compiler
中编译、运行测试部署好实验环境后,再次进行实验时执行第4、5步即可运行容器,进入实验环境,第5步中不一定在CMD运行命令,可以利用VSCode的终端运行命令。