Windows系统docker desktop安装(学习记录)
目前在学习docker,在网上扒了很多老师的教程,终于装好了,于是决定再装一遍做个记录,省的以后再这么麻烦
一:什么是docker
Docker 是一个开源的应用容器引擎,它可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何支持 Docker 的平台上。容器类似于虚拟机,但更加轻量级,共享宿主机的操作系统内核,启动速度快,资源占用少,便于应用的快速部署和扩展。
二:docker的安装
2.1 开启虚拟化
首先打开任务管理器,进入到性能里CPU界面,查看下方的虚拟化是否已启用,如果显示已禁用,则需要去BIOS中查找与CPU配置或高级选项相关的设置,如“Intel VT”、“Intel VT-x”或“AMD-V”。将虚拟化设置更改为“启用”,然后保存退出就可以了

2.2 打开Hyper-V
打开控制面板,点击程序

点击<<启用或关闭Windows功能>>选项

然后依次勾选<<Hyper-V>>,<<Windows虚拟机监控程序平台>>,<<容器>>,<<适用于Linux的Windows子系统>>,<<虚拟机平台>>




2.3 wsl安装
用管理员身份去运行终端

然后输入命令行打开wsl功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

然后打开虚拟机
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

输入以下命令在 Windows 系统中快速安装并设置WSL,安装 Ubuntu Linux 发行版,方便我们在 Windows 环境下直接使用 Linux 系统和工具。然后你就会进入这个界面,输入你的ubuntu系统名和密码,就完成了
wsl --install -d Ubuntu

验证安装

2.4 docker安装
直接官网搜索docker,也可以直接点我去到下载界面,我下载的这个
下载完成后进行安装


安装完成!重启电脑

2.5 进入docker
选择同意

选择使用推荐设置即默认设置,直接finish

登录docker,这里我使用的GitHub账号进行登录


选择方向

选择想用docker做什么

然后就进到docker主界面了

三:修改镜像
设置国内镜像地址,把原本的代码更替成下面这个代码段
{"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"features": {"buildkit": true},"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https://cr.console.aliyun.com","https://mirror.ccs.tencentyun.com"]
}

更换完之后进行保存

四:查看安装是否成功
在终端内输入命令查看是否安装成功
docker --version

docker 常用命令
查看docker安装
docker ps 或者 ps -ef | grep docker查看docker服务:
systemctl status docke设置开启docker服务:
systemctl enable docker启动docker服务:
systemctl start docker查看mysql镜像
docker search mysql进入容器:
docker exec -it xxx bash
打开ubuntu:
wsl

退出输入:
exit

五:解决报错
我们做完这些之后可能会有下图这个错误

网上查了一下,这个错误通常出现在使用 Docker 与 WSL集成的时候,或者是在尝试获取 Ubuntu 发行版的用户主目录的时候。在我们当前安装的条件下,大概率是由于 WSL 版本不兼容导致的。我们查一下WSL版本,比如我的WSL显示是1,于是我把 WSL 从版本 1 升级到版本 2,这个报错就没出来了
查询当前WSL版本
wsl --list --verbose
在保证我们的系统支持WSL2的前提下,把我们的这个Ubuntu发行版升级到WSL2
wsl --update
wsl --set-version Ubuntu 2

验证升级是否成功
wsl --list --verbose

此时我们可以看到我的WSL版本已经默认为WSL2了
六:WSL2与docker集成
6.1 启动WSL
由于 Ubuntu 发行版当前处于 Stopped 状态,我们需要启动它
wsl -d Ubuntu
或者直接
wsl

6.2 启用 Docker Desktop 与 WSL 2 的集成
点击 Docker Desktop 的设置图标,选择 Settings ,在 Settings中,进入 Resources > WSL Integration。启用 Enable integration with my default WSL distro 选项。我这边是把与其他发行版的集成启用也给打开了Enable integration with additional distros(个人感觉最好开一下)

6.3 验证WSL2与docker的集成
在 Windows 命令提示符中运行 wsl 或直接从开始菜单启动 Ubuntu。在终端中,运行以下命令来验证 Docker 是否可用
docker --version
输出图中内容,则说明集成成功

6.4 测试集成是否成功
运行一个Docker 容器来测试
docker run -it --rm hello-world
如果输出类似以下内容,说明 Docker 在 WSL 2 中可以正常运行

6.5 在 WSL 2 中默认使用 Docker Desktop 的 Docker 守护进程,设置环境变量
6.5.1 在 WSL 2 的终端中,打开或创建 .bashrc 文件
nano ~/.bashrc
6.5.2 在文件末尾添加以下内容
6.5.2.1 使用键盘的箭头键(↑、↓、←、→)移动光标到文件的任意位置。
6.5.2.2 直接在光标位置输入你想要添加的内容。例如,添加以下环境变量:
export DOCKER_HOST="unix:///mnt/wsl/docker-desktop/docker.sock"
6.5.2.3 按下 ctrl+O(大写英文字母O),然后按下 Enter 键确认保存
6.5.2.4 按下 Ctrl + X 退出 nano 编辑器
6.5.3 验证更改
6..5.3.1 重新加载 ~/.bashrc 文件
source ~/.bashrc
6.5.3.2 运行以下命令验证环境变量是否设置成功
echo $DOCKER_HOST
6.5.3.3 如果输出为:unix:///mnt/wsl/docker-desktop/docker.sock 说明环境变量已正确设置。
以上步骤主要来源:
2024最新Windows安装docker教程
Windows 安装docker(详细图解)
环境搭建-Windows系统搭建Docker
相关文章:
Windows系统docker desktop安装(学习记录)
目前在学习docker,在网上扒了很多老师的教程,终于装好了,于是决定再装一遍做个记录,省的以后再这么麻烦 一:什么是docker Docker 是一个开源的应用容器引擎,它可以让开发者打包他们的应用以及依赖包到一个…...
MIP-Splatting:全流程配置与自制数据集测试【ubuntu20.04】【2025最新版】
一、引言 在计算机视觉和神经渲染领域,3D场景重建与渲染一直是热门研究方向。近期,3D高斯散射(3D Gaussian Splatting)因其高效的渲染速度和优秀的视觉质量而受到广泛关注。然而,当处理大型复杂场景时,这种…...
怎样完成本地模型知识库检索问答RAG
怎样完成本地模型知识库检索问答RAG 目录 怎样完成本地模型知识库检索问答RAG使用密集检索器和系数检索器混合方式完成知识库相似检索1. 导入必要的库2. 加载文档3. 文本分割4. 初始化嵌入模型5. 创建向量数据库6. 初始化大语言模型7. 构建问答链8. 提出问题并检索相关文档9. 合…...
XCTF-web(三)
xff_referer 拦截数据包添加:X-Forwarded-For: 123.123.123.123 添加:Referer: https://www.google.com baby_web 提示:想想初始页面是哪个 查看/index.php simple_js 尝试万能密码,没有成功,在源码中找到如下…...
使用Python+xml+shutil修改目标检测图片和对应xml标注文件
使用Pythonxmlshutil修改目标检测图片文件名和对应xml标注文件: import os import glob import xml.etree.ElementTree as et import shutildef change_labels(source_dir):name_id 18001file_list glob.glob(os.path.join(source_dir, "*.xml"))print…...
How AI could empower any business - Andrew Ng
How AI could empower any business - Andrew Ng References 人工智能如何为任何业务提供支持 empower /ɪmˈpaʊə(r)/ vt. 授权;给 (某人) ...的权力;使控制局势;增加 (某人的) 自主权When I think about the rise of AI, I’m reminded …...
地理人工智能中位置编码的综述:方法与应用
以下是对论文 《A Review of Location Encoding for GeoAI: Methods and Applications》 的大纲和摘要整理: A Review of Location Encoding for GeoAI: Methods and Applications 摘要(Summary) 本文系统综述了地理人工智能(G…...
Verilog的整数除法
1、可变系数除法实现----利用除法的本质 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 2025/04/15 13:45:39 // Design Name: // Module Name: divide_1 // Project Name: // Target Devices: // Tool Versions: // Description: // // Depe…...
C++ | STL之list详解:双向链表的灵活操作与高效实践
引言 std::list 是C STL中基于双向链表实现的顺序容器,擅长高效插入和删除操作,尤其适用于频繁修改中间元素的场景。与std::vector不同,std::list的内存非连续,但提供了稳定的迭代器和灵活的元素管理。本文将全面解析std::list的…...
React 把一系列 state 更新加入队列
把一系列 state 更新加入队列 设置组件 state 会把一次重新渲染加入队列。但有时你可能会希望在下次渲染加入队列之前对 state 的值执行多次操作。为此,了解 React 如何批量更新 state 会很有帮助。 开发环境:Reacttsantd 学习内容 什么是“批处理”以…...
【大模型理论篇】Search-R1: 通过强化学习训练LLM推理与利⽤搜索引擎
最近基于强化学习框架来实现大模型在推理和检索能力增强的项目很多,也是Deep Research技术持续演进的缩影。之前我们讨论过《R1-Searcher:通过强化学习激励llm的搜索能⼒》,今天我们分析下Search-R1【1】。 1. 研究背景与问题 ⼤模型(LLM&a…...
Google政策大更新:影响金融,新闻,社交等所有类别App
Google Play 4月10日 迎来了2025年第一次大版本更新,新政主要涉及金融(个人贷款),新闻两个行业。但澄清内容部分却使得所有行业都需进行一定的更新。下面,我们依次从金融(个人贷款),…...
什么时候触发full GC(发生场景)
文章目录 1. 老年代空间不足2. 分配担保失败3. 显式调用`System.gc()`4. 元空间/永久代空间不足5. CMS/G1的并发失败6. 空间分配担保机制7. 堆内存碎片化8. 其他场景总结回答在Java中,Full GC(全局垃圾回收)会回收整个堆内存(包括年轻代、老年代)以及元空间(或永久代)。…...
NO.93十六届蓝桥杯备战|图论基础-拓扑排序|有向无环图|AOV网|摄像头|最大食物链计数|杂物(C++)
有向⽆环图 若⼀个有向图中不存在回路,则称为有向⽆环图(directed acycline graph),简称 DAG 图 AOV⽹ 举⼀个现实中的例⼦:课程的学习是有优先次序的,如果规划不当会严重影响学习效果。课程间的先后次序可以⽤有向图表⽰ 在…...
每日文献(十三)——Part one
今天看的是《RefineNet: Iterative Refinement for Accurate Object Localization》。 目录 零、摘要 0.1 原文 0.2 译文 一、介绍 二、RefineNet A. Fast R-CNN B. Faster R-CNN C. RefineNet 训练 D. RefineNet 测试 零、摘要 0.1 原文 We investigate a new str…...
游戏引擎学习第225天
只能说太难了 回顾当前的进度 我们正在进行一个完整游戏的开发,并在直播中同步推进。上周我们刚刚完成了过场动画系统的初步实现,把开场动画基本拼接完成,整体效果非常流畅。看到动画顺利呈现,令人十分满意,整个系统…...
git提取出指定提交所涉及的所有文件
当需要提取出某次提交所修改过的所有的文件时,可以使用如下命令,该命令来自文心一言 mkdir temp_dir git diff-tree --no-commit-id --name-only -r <commit-hash> | xargs -I {} cp --parents {} temp_dir/--no-commit-id:不显示提交…...
Linux 使用Nginx搭建简易网站模块
网站需求: 一、基于域名[www.openlab.com](http://www.openlab.com)可以访问网站内容为 welcome to openlab 二、给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站,基于[www.openlab.com/student](http://www.openlab.com/stud…...
抖音ai无人直播间助手场控软件
获取API权限 若使用DeepSeek官方AI服务,登录其开发者平台申请API Key或Token。 若为第三方AI(如ChatGPT),需通过接口文档获取访问权限。 配置场控软件 打开DeepSeek场控软件,进入设置界面找到“AI助手”或“自动化”…...
深度解析Redis过期字段清理机制:从源码到集群化实践 (二)
本文紧跟 上一篇 深度解析Redis过期字段清理机制:从源码到集群化实践 (一) 可以从redis合集中查看 八、Redis内核机制深度解析 8.1 Lua脚本执行引擎原理 Lua脚本执行流程图技术方案 执行全流程解析: #mermaid-svg-X51Gno…...
TCP标志位抓包
说明 TCP协议的Header信息,URG、ACK、PSH、RST、SYN、FIN这6个字段在14字节的位置,对应的是tcp[13],因为字节数是从[0]开始数的,14字节对应的就是tcp[13],因此在抓这几个标志位的数据包时就要明确范围在tcp[13] 示例1…...
如何实现动态请求地址(baseURL)
需求: 在项目中遇到了需要实时更换请求地址,后续使用修改后的请求地址(IP) 例如:原ip请求为http://192.168.1.1:80/xxx,现在需要你点击或其他操作将其修改为http://192.168.1.2:80/xxx,该如何操作 tips: 修改后需要跳转( 修改了IP之前的不可使用,需要访问修改后的地址来操作 …...
封装一个搜索区域 SearchForm.vue组件
父组件 <template><div><SearchForm:form-items"searchItems":initial-values"initialValues"search"handleSearch"reset"handleReset"><!-- 自定义插槽内容 --><template #custom-slot"{ form }&qu…...
《ADVANCING MATHEMATICAL REASONING IN LAN- GUAGE MODELS》全文阅读
《ADVANCING MATHEMATICAL REASONING IN LAN- GUAGE MODELS: THE IMPACT OF PROBLEM-SOLVING DATA, DATA SYNTHESIS METHODS, AND TRAINING STAGES》全文阅读 提升语言模型中的数学推理能力:问题求解数据、数据合成方法及训练阶段的影响 \begin{abstract} 数学推…...
Day56 | 99. 恢复二叉搜索树、103. 二叉树的锯齿形层序遍历、109. 有序链表转换二叉搜索树、113. 路径总和 II
99. 恢复二叉搜索树 题目链接:99. 恢复二叉搜索树 - 力扣(LeetCode) 题目难度:中等 代码: class Solution {public void recoverTree(TreeNode root) {List<TreeNode> listnew ArrayList<>();dfs(root,…...
GPT - GPT(Generative Pre-trained Transformer)模型框架
本节代码主要为实现了一个简化版的 GPT(Generative Pre-trained Transformer)模型。GPT 是一种基于 Transformer 架构的语言生成模型,主要用于生成自然语言文本。 1. 模型结构 初始化部分 class GPT(nn.Module):def __init__(self, vocab…...
前端加密的几种方式
前端加密的几种方式 一、对称加密原理常用算法代码示例(AES)适用场景 二、非对称加密原理常用算法代码示例(RSA)适用场景 三、哈希函数原理常用算法代码示例(SHA-256)适用场景 四、Base64 编码原…...
贪心算法:部分背包问题深度解析
简介: 该Java代码基于贪心算法实现了分数背包问题的求解,核心通过单位价值降序排序和分阶段装入策略实现最优解。首先对Product数组执行双重循环冒泡排序,按wm(价值/重量比)从高到低重新排列物品;随后分两阶段装入:循环…...
连接器电镀层的作用与性能
连接器电镀层的作用与性能: 镀金 金具有很高的化学稳定性,只溶于王水,不溶于其它酸,金镀层耐蚀性强,导电性好,易于焊接,耐高温,硬金具有一定的耐磨性。 对钢、铜、银及其合金基体而…...
神经网络如何表示数据
神经网络是如何工作的?这是一个让新手和专家都感到困惑的问题。麻省理工学院计算机科学和人工智能实验室(CSAIL)的一个团队表示,理解这些表示,以及它们如何为神经网络从数据中学习的方式提供信息,对于提高深…...
