Windows 11 搭建 Docker 桌面版详细教程
在当今的软件开发与部署领域,Docker 已成为一项极为重要的容器化技术。它能够让开发者轻松地打包应用及其依赖项,实现跨环境的一致性运行,大大提高了开发效率与部署的便捷性。本教程将详细介绍在 Windows 11 操作系统上搭建 Docker 桌面版的具体步骤,并且由于 Docker 在 Windows 11 上与 WSL2(Windows Subsystem for Linux 2)有着紧密的关联,我们也会对 WSL2 进行详细介绍并讲解其安装过程。
一、WSL2 简介
WSL2 是适用于 Windows 11 的 Windows 子系统的一个新版本,它提供了更完整的 Linux 内核功能以及更好的系统性能。与传统的 Windows 应用运行环境不同,WSL2 能够在 Windows 系统上原生运行 Linux 二进制可执行文件,这使得开发者可以在 Windows 11 上无缝地使用各种 Linux 工具和环境,并且与 Docker 配合使用时能够提供更出色的容器化体验。
WSL2 相比 WSL1 具有以下显著优势:
-
完整的 Linux 内核:WSL2 包含了一个真正的 Linux 内核,这使得它能够运行更多类型的 Linux 应用,并且在系统调用和文件系统方面具有更好的兼容性和性能表现。例如,一些需要特定 Linux 内核特性的应用或工具,如 Docker 所依赖的一些底层功能,在 WSL2 中能够更好地运行。 -
显著提升的文件系统性能:WSL2 采用了新的虚拟硬盘格式(.vhdx)以及 9P 协议来与 Windows 文件系统交互,这大大提高了文件系统的读写速度。在使用 Docker 时,容器内文件的操作速度更快,从而提升了容器的启动速度和整体性能。 -
更好的系统隔离性:WSL2 与 Windows 系统之间具有更好的隔离性,每个 WSL2 实例都运行在独立的轻量级虚拟机中,这有助于提高系统的安全性和稳定性,并且避免了不同应用或容器之间的相互干扰。
二、WSL2 安装
在安装 Docker 桌面版之前,先确保 WSL2 已经正确安装并配置。以下是在 Windows 11 上安装 WSL2 的步骤:
-
以管理员身份打开 Windows PowerShell。可以通过在“开始”菜单中搜索“PowerShell”,然后右键点击并选择“以管理员身份运行”。 -
运行以下命令来启用 WSL 功能(如果尚未启用):
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
-
接着启用虚拟机平台功能,这是 WSL2 运行所必需的:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
-
重启计算机以使上述设置生效。 -
计算机重启后,再次打开 Windows PowerShell,运行以下命令来下载并安装适用于 x64 计算机的 Linux 内核更新包:
wsl --update
-
将 WSL2 设置为默认版本,运行以下命令:
wsl --set-default-version 2
-
安装你所选择的 Linux 发行版。例如,要安装 Ubuntu,可以在 Microsoft Store 中搜索“Ubuntu”,然后点击“获取”按钮进行安装。安装完成后,从“开始”菜单中启动 Ubuntu,它会提示你设置用户名和密码,按照提示完成设置即可。
三、系统要求与准备工作
在完成 WSL2 安装后,继续进行 Docker 桌面版的安装准备工作。首先确保你的 Windows 11 系统满足以下要求:
-
Windows 11 专业版或企业版(家庭版不支持)。 -
系统必须启用了硬件虚拟化功能。这通常需要在计算机的 BIOS 或 UEFI 设置中开启,具体的开启方式因计算机型号而异。一般可以在开机时按下对应的按键(如 Del、F2、F10 等)进入 BIOS/UEFI 设置界面,然后找到“Virtualization Technology”或类似选项并将其设置为“Enabled”。 -
至少拥有 4GB 的系统内存(建议 8GB 或更多以获得更好的性能)。 -
有足够的磁盘空间用于存储 Docker 镜像、容器以及相关数据。
完成上述系统要求检查后,还需要进行以下准备工作:
-
确保系统已安装了最新的 Windows 更新。这可以通过点击“开始”菜单,选择“设置”,然后进入“更新和安全”页面,点击“检查更新”按钮来完成。 -
禁用或卸载可能与 Docker 冲突的软件,如一些虚拟机软件(如 VirtualBox,如果之前安装过)或其他容器化工具。
四、下载 Docker 桌面版
-
打开浏览器,访问 Docker 官方网站(https://www.docker.com/products/docker-desktop)。 -
在网站页面上找到适合 Windows 11 的 Docker 桌面版下载链接。通常会有一个明显的“Download for Windows”按钮,点击它开始下载安装程序。
五、安装 Docker 桌面版
-
下载完成后,找到下载的安装程序文件(一般为.exe 格式),双击运行它。 -
在安装向导的欢迎页面,点击“Next”按钮继续。 -
选择安装的目标文件夹。可以使用默认的安装路径,也可以点击“Browse”按钮选择其他磁盘位置,然后点击“Next”。 -
选择是否创建桌面快捷方式和开始菜单快捷方式,根据个人喜好进行选择后点击“Next”。 -
在接下来的页面中,会看到关于 Hyper-V 和 Windows 容器的相关设置选项。由于 Windows 11 专业版和企业版支持 Hyper-V,建议选择使用 Hyper-V 作为后端(这将自动安装和配置 Hyper-V,如果尚未安装),然后点击“Next”。 -
查看安装设置的摘要信息,如果确认无误,点击“Install”按钮开始安装。安装过程可能需要一些时间,期间系统可能会自动重启以完成 Hyper-V 的安装和配置(如果是首次安装 Hyper-V)。
六、配置 Docker 桌面版
-
安装完成后,Docker 桌面版会自动启动。首次启动时,它会在系统托盘区显示一个小鲸鱼图标。 -
右键点击该图标,选择“Settings”选项,打开 Docker 设置窗口。 -
在设置窗口中,可以对 Docker 的各种参数进行配置,如: -
General(常规):可以设置是否在 Windows 启动时自动启动 Docker,以及选择使用的容器运行时(默认是 runc)。 -
Resources(资源):配置 Docker 可使用的 CPU 和内存资源比例。可以根据系统的硬件配置和其他应用的资源需求进行合理调整。例如,如果你的系统同时运行多个大型应用,可以适当减少 Docker 的资源分配,反之则可以增加以提高容器的性能。 -
Docker Engine(Docker 引擎):这里可以设置 Docker 引擎的一些高级参数,如镜像仓库地址、容器网络配置等。对于大多数普通用户,使用默认值即可。如果需要使用自定义的镜像仓库或配置特殊的网络模式,可以在这里进行修改。
-
-
配置完成后,点击“Apply & Restart”按钮使设置生效并重新启动 Docker 服务。
七、验证安装
-
打开命令提示符(CMD)或 Windows PowerShell。可以通过在“开始”菜单中搜索“cmd”或“PowerShell”来找到并打开它们。 -
在命令提示符或 PowerShell 中输入以下命令:
docker --version
如果安装成功,将会显示 Docker 的版本信息,例如:
Docker version 20.10.12, build e91ed57
-
接着输入以下命令来运行一个简单的测试容器:
docker run hello-world
如果一切正常,将会看到类似于以下的输出:
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:7f0a9f93b4aa3022c3a4c147a449bf11e0941a1fd0bf4a8e6c9408b2600777c5
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
- The Docker client contacted the Docker daemon.
- The Docker daemon pulled the “hello-world” image from the Docker Hub.
- The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading. - The Docker daemon streamed that output to theDocker client, which sent it
to your terminal.
To try something more ambitious, you can run an image that runs a full Linux
distribution as its “rootfs”. Try this by running the following:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
这表明 Docker 已经成功安装并且能够正常运行容器。
通过以上详细的步骤,你已经在 Windows 11 系统上成功搭建了 Docker 桌面版,并在 WSL2 的支持下,能够更好地利用 Docker 进行容器化应用的开发、测试和部署等工作,享受容器化技术带来的便利与高效。
相关文章:
Windows 11 搭建 Docker 桌面版详细教程
在当今的软件开发与部署领域,Docker 已成为一项极为重要的容器化技术。它能够让开发者轻松地打包应用及其依赖项,实现跨环境的一致性运行,大大提高了开发效率与部署的便捷性。本教程将详细介绍在 Windows 11 操作系统上搭建 Docker 桌面版的具…...

Pytest-Bdd-Playwright 系列教程(13):钩子(hooks)
Pytest-Bdd-Playwright 系列教程(13):钩子(hooks) 前言一、什么是钩子?二、Pytest-Bdd 提供的钩子一览三、钩子用法详解1. pytest_bdd_before_scenario2. pytest_bdd_after_scenario3. pytest_bdd_before_s…...

dns 服务器简单介绍
dns 服务器分类: 根域名服务器顶级域名服务器权威域名服务器本地域名服务器 dns 的查询过程 国内优秀公共域名 腾讯:DNSPod-免费智能DNS解析服务商-电信_网通_教育网,智能DNS-烟台帝思普网络科技有限公司 119.29.29.29 和 182.254.118.118 阿里…...
Neo4j图形数据库-Cypher中常用指令
一、创建与修改 1.1 create 创建图数据库中的节点、关系等元素: CREATE (:Person {name: "Alice", age: 30}) CREATE (p1:Person {name: "Bob"})-[r:KNOWS]->(p2:Person {name: "Charlie"})批量创建元素 CREATE (n1:Node),(n2…...
linux安全管理-防火墙配置
1. 开启系统防火墙 1、检查内容 检查操作系统是否开启防火墙; 2、配置要求 操作系统开启防火墙; 3、配置方法 systemctl status firewalld ##查看系统防火墙运行状态 systemctl start firewalld ##启动防火墙 systemctl restart firewalld ##重启防火墙…...
什么是BIOS
BIOS(Basic Input/Output System,基本输入输出系统)是计算机启动过程中的一个关键组件,主要负责硬件的初始化和系统的引导。以下是关于 BIOS 的一些详细信息: 1. 基本功能 硬件初始化:当计算机启动时&…...

c++视频图像处理
打开视频或摄像头 打开指定视频 /*VideoCapture(const String &filename, apiPreference);filename:读取的视频或者图像序列的名称apiPreference:读取数据时设置的属性*/ VideoCapture video; //定义一个空的视频对象 video.open("H:/BaiduNetdiskDownlo…...

音视频入门基础:MPEG2-TS专题(8)——TS Header中的适配域
注:本文有部分内容引用了维基百科:https://zh.wikipedia.org/wiki/MPEG2-TS 一、引言 当TS Header中的adaptation_field_control属性的值为10或11 时,TS Header包含adaptation field(适配域): 根据《T-RE…...

基于stm32单片机的教室节能系统设计
功能描述 0. STM32F103C8T6单片机为控制核心 1. OLED液晶显示当前年 月 日 时 分 秒 星期 2. 按键可以设置定时时间 3. 按键可以设置用电开关的开启和关闭时间,实现设备的节能 4. 通过红外遥控可以打开关闭空调设备(通过继电器开关闭合模拟&#x…...
mini主机通过内网穿透做成服务器
文章目录 简介1.ubuntu 的ssh server 安装2.ubuntu 的docker 安装3.ubuntu的curl的安装4.ubuntu的frp客户端安装5.ubuntu的docker compose安装6.声明 简介 主要目的 本地设备做成服务器,实现ssh远程登录以及内网穿透设备总成本1千多元(其实部分设备可以…...

智能桥梁安全运行监测系统守护桥梁安全卫士
一、方案背景 桥梁作为交通基础设施中不可或缺的重要组成部分,其安全稳定的运行直接关联到广大人民群众的生命财产安全以及整个社会的稳定与和谐。桥梁不仅是连接两地的通道,更是经济发展和社会进步的重要纽带。为了确保桥梁的安全运行,桥梁安…...

Selenium和Pyppeteer有什么区别?
Selenium和Pyppeteer都是自动化测试工具,它们可以模拟用户在浏览器中的操作,但它们之间存在一些关键的区别: Selenium 跨浏览器支持:Selenium支持多种浏览器,包括Chrome、Firefox、Internet Explorer等,而…...
82从零开始学Java之异常处理机制简介
作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦 CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 大家可以想一个问题,有没有谁能够做到开发项目时一个错误都不发生?如果谁能够做到这一点,那他可能真的是“天才”!但实际上,任何人都不可能在项目开发…...

Git上传本地项目到远程仓库(gitee/github)
目录 序言一、创建git本地版本库二、连接远程仓库(以gitee为例)三、将项目提交到git(本地)版本库1.由工作区添加到暂存区2.由暂存区添加到版本库 四、将代码由本地仓库上传到 gitee远程仓库1.获取远程库与本地同步2.把当前分支 ma…...

华为仓颉编程环境搭建
1、仓颉介绍 摘自华为官方:仓颉编程语言作为一款面向全场景应用开发的现代编程语言,通过现代语言特性的集成、全方位的编译优化和运行时实现、以及开箱即用的 IDE 工具链支持,为开发者打造友好开发体验和卓越程序性能。 其具体特性表现为&am…...
UE5 Line Trace By Channel(通道线条追踪)节点
在 Unreal Engine 5 (UE5) 中,Line Trace By Channel 是一个常用于进行物理射线检测(raycasting)的节点。它会沿着一条从起点到终点的直线发射一条射线,并检测射线与世界中任何物体的碰撞。这个节点广泛应用于枪械射击、检测物体、…...

DroneCAN 最新开发进展,Andrew在Ardupilot开发者大会2024的演讲
本文是Andrew演讲的中文翻译,你可以直接观看视频了解演讲的全部内容,此演讲视频的中文版本已经发布在Ardupilot社区的Blog板块,你可以在 Arudpilot官网(https://ardupilot.org) 获取该视频: 你也可以直接通过Bilibili链…...

UDP客户端服务器通信
在这篇博客中,我们将探索 UDP(用户数据报协议) 通信,简要地说,UDP 是一种无连接、快速但不可靠的通信协议,适用于需要快速数据传输但对丢包容忍的场景,比如视频流和在线游戏。就像《我是如此相信…...
适合中小型公司的自动化测试的测试框架,OpenSourceTest
适合中小型公司的自动化测试的测试框架,OpenSourceTest 文档地址: http://docs.opensourcetest.cn/代码仓库: https://github.com/chineseluo/opensourcetest安装方式: pip3 install opensourcetest -i https://pypi.tuna.tsin…...
实现跨语言通信:Rust 和 Thrift 的最佳实践
前言 在分布式系统中,服务之间高效且安全的通信至关重要。Apache Thrift 是一个被广泛应用的跨语言 RPC(远程过程调用)框架,它支持多种编程语言,包括 Rust。Rust 以其卓越的性能和内存安全保障,成为越来越…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...

QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...

恶补电源:1.电桥
一、元器件的选择 搜索并选择电桥,再multisim中选择FWB,就有各种型号的电桥: 电桥是用来干嘛的呢? 它是一个由四个二极管搭成的“桥梁”形状的电路,用来把交流电(AC)变成直流电(DC)。…...