如何在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

相关推荐
kk57940 分钟前
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
人工智能·windows·vscode·chatgpt
饺子大魔王的男人1 小时前
Docker环境下FileRise私有云盘在飞牛NAS的部署与穿透实践
运维·docker·容器
Lw老王要学习3 小时前
Linux容器篇、第一章_02Rocky9.5 系统下 Docker 的持久化操作与 Dockerfile 指令详解
linux·运维·docker·容器·云计算
橙子小哥的代码世界3 小时前
【大模型RAG】Docker 一键部署 Milvus 完整攻略
linux·docker·大模型·milvus·向量数据库·rag
颜淡慕潇5 小时前
【K8S系列】Kubernetes 中 Pod(Java服务)启动缓慢的深度分析与解决方案
容器·kubernetes·pod
默心5 小时前
华为云上的K8S怎么使用对象存储配置pod文件持久化。
容器·kubernetes·华为云
955.5 小时前
k8s从入门到放弃之DaemonSet控制器
云原生·容器·kubernetes
藥瓿亭5 小时前
K8S认证|CKS题库+答案| 10. Trivy 扫描镜像安全漏洞
linux·运维·服务器·云原生·容器·kubernetes·cks
955.5 小时前
k8s从入门到放弃之Service负载均衡
容器·kubernetes·负载均衡