Windows系统docker desktop安装(学习记录)

news2025/4/16 7:06:45

目前在学习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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2335772.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MIP-Splatting:全流程配置与自制数据集测试【ubuntu20.04】【2025最新版】

一、引言 在计算机视觉和神经渲染领域&#xff0c;3D场景重建与渲染一直是热门研究方向。近期&#xff0c;3D高斯散射&#xff08;3D Gaussian Splatting&#xff09;因其高效的渲染速度和优秀的视觉质量而受到广泛关注。然而&#xff0c;当处理大型复杂场景时&#xff0c;这种…

怎样完成本地模型知识库检索问答RAG

怎样完成本地模型知识库检索问答RAG 目录 怎样完成本地模型知识库检索问答RAG使用密集检索器和系数检索器混合方式完成知识库相似检索1. 导入必要的库2. 加载文档3. 文本分割4. 初始化嵌入模型5. 创建向量数据库6. 初始化大语言模型7. 构建问答链8. 提出问题并检索相关文档9. 合…

XCTF-web(三)

xff_referer 拦截数据包添加&#xff1a;X-Forwarded-For: 123.123.123.123 添加&#xff1a;Referer: https://www.google.com baby_web 提示&#xff1a;想想初始页面是哪个 查看/index.php simple_js 尝试万能密码&#xff0c;没有成功&#xff0c;在源码中找到如下&#xf…

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…

React 把一系列 state 更新加入队列

把一系列 state 更新加入队列 设置组件 state 会把一次重新渲染加入队列。但有时你可能会希望在下次渲染加入队列之前对 state 的值执行多次操作。为此&#xff0c;了解 React 如何批量更新 state 会很有帮助。 开发环境&#xff1a;Reacttsantd 学习内容 什么是“批处理”以…

【大模型理论篇】Search-R1: 通过强化学习训练LLM推理与利⽤搜索引擎

最近基于强化学习框架来实现大模型在推理和检索能力增强的项目很多&#xff0c;也是Deep Research技术持续演进的缩影。之前我们讨论过《R1-Searcher:通过强化学习激励llm的搜索能⼒》&#xff0c;今天我们分析下Search-R1【1】。 1. 研究背景与问题 ⼤模型&#xff08;LLM&a…

Google政策大更新:影响金融,新闻,社交等所有类别App

Google Play 4月10日 迎来了2025年第一次大版本更新&#xff0c;新政主要涉及金融&#xff08;个人贷款&#xff09;&#xff0c;新闻两个行业。但澄清内容部分却使得所有行业都需进行一定的更新。下面&#xff0c;我们依次从金融&#xff08;个人贷款&#xff09;&#xff0c;…

NO.93十六届蓝桥杯备战|图论基础-拓扑排序|有向无环图|AOV网|摄像头|最大食物链计数|杂物(C++)

有向⽆环图 若⼀个有向图中不存在回路&#xff0c;则称为有向⽆环图(directed acycline graph)&#xff0c;简称 DAG 图 AOV⽹ 举⼀个现实中的例⼦&#xff1a;课程的学习是有优先次序的&#xff0c;如果规划不当会严重影响学习效果。课程间的先后次序可以⽤有向图表⽰ 在…

每日文献(十三)——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天

只能说太难了 回顾当前的进度 我们正在进行一个完整游戏的开发&#xff0c;并在直播中同步推进。上周我们刚刚完成了过场动画系统的初步实现&#xff0c;把开场动画基本拼接完成&#xff0c;整体效果非常流畅。看到动画顺利呈现&#xff0c;令人十分满意&#xff0c;整个系统…

Linux 使用Nginx搭建简易网站模块

网站需求&#xff1a; 一、基于域名[www.openlab.com](http://www.openlab.com)可以访问网站内容为 welcome to openlab ​ 二、给该公司创建三个子界面分别显示学生信息&#xff0c;教学资料和缴费网站&#xff0c;基于[www.openlab.com/student](http://www.openlab.com/stud…

抖音ai无人直播间助手场控软件

获取API权限 若使用DeepSeek官方AI服务&#xff0c;登录其开发者平台申请API Key或Token。 若为第三方AI&#xff08;如ChatGPT&#xff09;&#xff0c;需通过接口文档获取访问权限。 配置场控软件 打开DeepSeek场控软件&#xff0c;进入设置界面找到“AI助手”或“自动化”…

TCP标志位抓包

说明 TCP协议的Header信息&#xff0c;URG、ACK、PSH、RST、SYN、FIN这6个字段在14字节的位置&#xff0c;对应的是tcp[13]&#xff0c;因为字节数是从[0]开始数的&#xff0c;14字节对应的就是tcp[13]&#xff0c;因此在抓这几个标志位的数据包时就要明确范围在tcp[13] 示例1…

封装一个搜索区域 SearchForm.vue组件

父组件 <template><div><SearchForm:form-items"searchItems":initial-values"initialValues"search"handleSearch"reset"handleReset"><!-- 自定义插槽内容 --><template #custom-slot"{ form }&qu…

GPT - GPT(Generative Pre-trained Transformer)模型框架

本节代码主要为实现了一个简化版的 GPT&#xff08;Generative Pre-trained Transformer&#xff09;模型。GPT 是一种基于 Transformer 架构的语言生成模型&#xff0c;主要用于生成自然语言文本。 1. 模型结构 初始化部分 class GPT(nn.Module):def __init__(self, vocab…

贪心算法:部分背包问题深度解析

简介&#xff1a; 该Java代码基于贪心算法实现了分数背包问题的求解&#xff0c;核心通过单位价值降序排序和分阶段装入策略实现最优解。首先对Product数组执行双重循环冒泡排序&#xff0c;按wm(价值/重量比)从高到低重新排列物品&#xff1b;随后分两阶段装入&#xff1a;循环…

连接器电镀层的作用与性能

连接器电镀层的作用与性能&#xff1a; 镀金 金具有很高的化学稳定性&#xff0c;只溶于王水&#xff0c;不溶于其它酸&#xff0c;金镀层耐蚀性强&#xff0c;导电性好&#xff0c;易于焊接&#xff0c;耐高温&#xff0c;硬金具有一定的耐磨性。 对钢、铜、银及其合金基体而…

神经网络如何表示数据

神经网络是如何工作的&#xff1f;这是一个让新手和专家都感到困惑的问题。麻省理工学院计算机科学和人工智能实验室&#xff08;CSAIL&#xff09;的一个团队表示&#xff0c;理解这些表示&#xff0c;以及它们如何为神经网络从数据中学习的方式提供信息&#xff0c;对于提高深…

nginx自编译重现gzip和chunked的现象

前言 最近做项目&#xff0c;发现一个比较好玩的事&#xff0c;nginx的module gzip模式默认支持1KB压缩&#xff0c;和chunked返回&#xff0c;本来现在的很多框架都很完善了&#xff0c;但是&#xff0c;一些新语言框架或者一些老旧框架会不能完整支持chunked&#xff0c;导致…

jspm企业采购管理系统的设计与实现(源码+lw+部署文档+讲解),源码可白嫖!

摘要 相比于以前的传统企业采购手工管理方式&#xff0c;智能化的管理方式可以大幅降低企业采购管理的运营人员成本&#xff0c;实现了企业采购管理的标准化、制度化、程序化的管理&#xff0c;有效地防止了物资信息、物资入库、出库等的随意管理&#xff0c;提高了信息的处理…