概述
文章目录
- 1 写在前面
- 1.1 docker 是什么 ?
- 1.2 WSL2 是什么 ?
- 2 安装
- 2.1 检查 windows 的子系统功能是否开启
- 2.2 更新 WSL2
- 2.3 安装 Docker
- 3 Docker 平台功能简介
- 3.1 容器、镜像和数据卷
- 3.2 从 Windows Powershell 控制 Docker
- 3.3 正确的使用姿势
- 4 复现一个自带 python 环境的容器并运行代码
- 4.1 准备 python 镜像文件
- 4.2 创建数据盘
- 4.3 传输代码文件
- 4.4 创建容器、安装镜像文件并挂载数据盘
- 4.5 执行数据盘中的代码
1 写在前面
1.1 docker 是什么 ?
众所周知,代码复现最头疼的莫过于 运行环境 问题,明明按照 README 配置好了环境,却因为库版本、系统、硬件层面等的差异,出现一些莫名其妙的错误。
docker 平台的出现改变了这一现状,它通过创造一个容器 (container),技术人员在其中安装开发环境、完成代码开发并打包,使用者下载镜像 (image) 后即可复现这个自带开发环境的容器,从而顺利使用上程序,即口号 “build, share and run”。
1.2 WSL2 是什么 ?
WSL2 (Windows Subsystem for Linux 2) 是微软自带的 Linux 子系统,最早发布于 2021 年的 Windows 10 中,目前在 Windows 10 和 Windows 11 中都可以安装和运行。
docker 必须运行在 Linux 系统下,因此 Windows 系统需要调用 WSL2 来实现 docker。
2 安装
2.1 检查 windows 的子系统功能是否开启
- 左下角搜索 “启用或关闭 windows 功能”
- 找到 “适用于 Linux 的 Windows 子系统”
- 确保前面的框打勾即可
2.2 更新 WSL2
-
直通链接:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
-
安装完毕后打开 powershell,输入:
wsl --set-default-version 2
更多关于 WSL2 的安装问题请见:
https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#step-4—download-the-linux-kernel-update-package
2.3 安装 Docker
- 直通链接:https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe
更多关于 WSL2 的安装问题请见:
https://docs.docker.com/desktop/install/windows-install/
3 Docker 平台功能简介
3.1 容器、镜像和数据卷
打开 Docker Desktop,可以看到左侧有三个主要功能:
- 容器 (Containers):正在运行的容器
- 镜像 (Images):环境文件,可以通过右上角 Search 找到你所需要的环境
- 数据卷 (Volumes):给容器挂载的硬盘,方便和 Windows 系统交换数据
3.2 从 Windows Powershell 控制 Docker
Docker Desktop 允许方便地查看和删除最近的活动,但是操作起来并不清晰和明确,因此更推荐在命令行执行指令,以下列举了最常见的指令:
-
镜像:docker pull xxx (下载) / docker run xxx (安装) / docker image ls (列表)
-
容器:docker start xxx (启动) / docker stop xxx (停止) / docker container ls (列表)
-
数据卷:docker volume create xxx (创建) / docker volume ls (列表)
3.3 正确的使用姿势
- 下载所需的 image (环境,譬如 python 3)
- 准备一个 volume (数据盘)
- 把将要执行的代码和数据放在 volume 里面
- 创建 container (容器) ,安装环境,并挂载 volume
- 在容器复现的环境内运行代码
4 复现一个自带 python 环境的容器并运行代码
4.1 准备 python 镜像文件
回到 Docker Desktop,右上角搜索 python,然后选择所需的版本,再点击 Pull 即可
完成后,将看到 images 中多了一个 python
4.2 创建数据盘
打开 Windows Powershell,输入以下指令
完成后可以在 Docker Desktop 的 Volumes 中看到新增的数据盘
docker volume create --name disk
4.3 传输代码文件
该数据盘的实际位置可以通过 Windows 文件浏览器访问:
wsl.localhostdocker-desktop-datadatadockervolumesdisk_data
此时可以在该位置新建或者复制进来一个 test.py,内容如下:
print('Hello World!')
答疑:这个奇怪的路径是怎么回事?
请回忆一下 docker 平台的原理,它运行在 Windows 利用 WSL2 创建的 Linux 环境中, 换句话说,以上路径可以理解成:
- WSL2 创造了 Linux 系统,位于网络位置 wsl.localhost
- docker 平台安装在该系统中,因此位于 docker-desktop-data 文件夹
- docker 创建了一个硬盘,因此位于 datadockervolumes 内
4.4 创建容器、安装镜像文件并挂载数据盘
打开 Windows Powershell,输入以下指令
docker run -it --name test -v disk:/mnt python
此时看到进入了容器的 python 环境中,容器的系统是 Linux 系统
Python 3.11.0 (main, Nov 15 2022, 19:58:01) [GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
答疑:run 里面的参数是怎么回事?
- -it:以可交互形式创建容器,否则 Powershell 无法进入 Linux 子系统
- –name test:容器的名字起作 test
- -v disk:/mnt:把创建的 disk 硬盘挂载到容器的 /mnt 文件夹中
- python:安装并进入 python 环境
4.5 执行数据盘中的代码
此时,我们已经为 Linux 子系统准备好了 Docker 带来的容器 test,该容器内安装好了 python 环境,同时该容器的 /mnt 文件夹挂载了系统的 disk 文件夹,内含有传输过来的代码,等待进一步执行。
我们首先进入这个容器:
接着和 Linux 一样,切换容器的工作目录到 /mnt 中,然后执行代码:
cd mnt
python test.py
大功告成:
最后
以上就是醉熏酒窝为你收集整理的Windows + WSL2 的 docker 安装方法,以及配置 python 环境、传输文件并执行 .py 脚本1 写在前面2 安装3 Docker 平台功能简介4 复现一个自带 python 环境的容器并运行代码的全部内容,希望文章能够帮你解决Windows + WSL2 的 docker 安装方法,以及配置 python 环境、传输文件并执行 .py 脚本1 写在前面2 安装3 Docker 平台功能简介4 复现一个自带 python 环境的容器并运行代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复