如何在Windows上使用Docker

引言

WSL2(Windows Subsystem for Linux2)是微软开发的一种技术,允许在 Windows 操作系统上运行 Linux 环境。它提供了一个兼容层,使得用户可以在 Windows 系统中直接运行 Linux 命令行工具、应用程序和开发工具,而无需使用虚拟机或双系统启动。


尝试安装

输入wsl --install,尝试像MAC一样直接安装,结果遇到了问题,这里可以找一下这个包下载下来,但是没找,不知道缺了之后会怎么样,感觉是想从GitHub里下载发行版,可以在 WSL 中安装的不同 Linux 版本,例如 Ubuntu。

BIOS虚拟化

该命令的作用是启用 Windows 系统中的"虚拟机平台"功能,这是运行 WSL 2(Windows Subsystem for Linux 2)的必要条件之一。启用该功能后,系统将安装必要的组件,从而允许你使用 WSL 2 来运行 Linux 发行版。看一下版本,这里只安装了dockers-desktop,它无法正常运行会提示你BIOS虚拟化。

下载X64的WSL2 Linux内核升级包

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi(不知道有什么用)

配置分发版本

Docker Desktop 不需要安装任何特定的 Linux 发行版。CLI 和 UI 在 Windows 上都可以正常工作,无需任何其他 Linux 发行版。但是建议至少安装一个额外的发行版并启用 Docker 支持。

Linux 是一个开源的类 Unix 操作系统内核,最初由 Linus Torvalds 在 1991 年开发。Linux 内核本身只是一个操作系统的核心部分,它提供了基本的系统功能,如进程管理、文件系统、设备驱动等。为了让用户能够方便地使用 Linux,开发者将 Linux 内核与各种软件工具、应用程序、库文件等组合在一起,形成了一个完整的操作系统,这就是 Linux 发行版(Linux Distribution)。

每个 Linux 发行版都有其独特的特点和目标用户群体,Ubuntu:适合新手和桌面用户,提供友好的安装过程和丰富的软件库。

安装缺失的库

  • 打开 WSL 的 docker-desktop 发行版的终端:

复制代码
  wsl -d docker-desktop
  • 在终端中运行以下命令安装 libstdc++

    复制代码
    apk update
    apk add libstdc++
  • 确保你的网络可以访问 Alpine Linux 的软件包仓库。如果网络有问题,可以尝试更换 DNS 或使用代理。

  • 如果你在中国大陆,可以尝试使用国内的镜像源,例如:

    复制代码
    echo "http://mirrors.aliyun.com/alpine/v3.20/main/" > /etc/apk/repositories
    echo "http://mirrors.aliyun.com/alpine/v3.20/community/" >> /etc/apk/repositories
    apk update

下载插件使用

在desktop里, 通过转到"设置">"资源">"WSL 集成",从要启用 Docker 集成的已安装 WSL 2 发行版中进行选择,并打开 WSL 发行版 。

在vscode里下载插件使用,下载remote explorer选中Ubuntu-22.04。

通过连接到指定的远程环境(如WSL: Ubuntu-22.04),并在远程环境中安装扩展,即可解决问题。

参考文档

WSL Docker文档: https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-containers

Docker官网: https://www.docker.com/

Docker Hub: https://hub.docker.com/

参考视频

【给片哥的Docker教程】 https://www.bilibili.com/video/BV1vxcweoEJS/?share_source=copy_web\&vd_source=e67da02918054ef8eab5865aea08bfa6

【寒假开学 同学问我为什么变强了!------清华大学电子系科协软件部x软件科协2024联合暑期培训】 https://www.bilibili.com/video/BV1v9cteeEro/?p=11\&share_source=copy_web\&vd_source=e67da02918054ef8eab5865aea08bfa6

相关推荐
傻啦嘿哟3 小时前
Python 高效清理 Excel 空白行列:从原理到实战
windows
晋人在秦 老K3 小时前
鼠标连点效率低?MouseClickTool 2.0三步配置,自动化操作提速80% 重复点击太耗时?Windows鼠标连点器实操教程,开发测试效率翻倍
windows·自动化·计算机外设·鼠标连点器·gui模拟点击·自动化点击解决方案
shykevin3 小时前
uni-app x商城,商品列表组件封装以及使用
windows·uni-app
Akshsjsjenjd4 小时前
Docker资源限制详解
运维·docker·容器
雲帝6 小时前
1panel docker开启swap内存
运维·docker·容器
qq_264220897 小时前
k8s-Pod详解
云原生·容器·kubernetes
小诸葛的博客7 小时前
k8s localpath csi原理
云原生·容器·kubernetes
CHH321313 小时前
在 Mac/linux 的 VSCode 中使用Remote-SSH远程连接 Windows
linux·windows·vscode·macos
tryCbest13 小时前
Linux使用Docker部署项目后期更新
linux·运维·docker
忧郁的橙子.14 小时前
十六、kubernetes 1.29 之 集群安全机制
安全·容器·kubernetes