当前位置: 首页 > news >正文

【Docker 学习笔记】Windows Docker Desktop 安装

文章目录

    • 一、前言
    • 二、Windows Docker 安装
      • 1. 基于`Hyper-V后端`和`Windows容器`的安装
      • 2. 基于`WSL2后端`的安装(推荐)
      • 3. 安装`Docker Desktop on Windows`
      • 4. 启动并验证`Docker Desktop`

一、前言

Docker并非是一个通用的容器工具,它依赖于已存在并运行的Linux内核环境。

Docker实质上是在已经运行的Linux下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的Linux主机。

因此,Docker必须部署在Linux内核的系统上。如果其他系统想部署Docker就必须安装一个虚拟Linux环境。

Docker运行基于Linux内核环境

Windows上部署Docker的方法都是先安装一个虚拟机,并在安装Linux系统的的虚拟机中运行Docker

二、Windows Docker 安装

适用于WindowsDocker Desktop下载:Install Docker Desktop on Windows

准备安装环境,主要有两种:1. 基于 Hyper-V后端Windows容器的安装;2. 基于 WSL2后端 的安装

1. 基于Hyper-V后端Windows容器的安装

该种安装方式,环境要求:

  • Windows 11 64 位:专业版 21H2 或更高版本,或企业版或教育版 21H2 或更高版本。
  • Windows 10 64 位:Pro 21H2(内部版本 19044)或更高版本,或企业版或教育版 21H2(内部版本 19044)或更高版本。
  • 必须启用Hyper-V 和Windows容器功能。

对于 Windows 10 和 Windows 11 家庭版,请使用WSL2后端安装方式。

系统要求就不说了,这里说下【启用Hyper-V 和Windows容器功能】

在任务栏搜索框,输入启用或关闭Windows功能,然后打开后,勾选如下配置:
启用hyper-v和容器
注意:
Hyper-V一旦启用,QEMU、VirtualBox 或 VMWare Workstation 15 及以下版本可能无法使用!

2. 基于WSL2后端的安装(推荐)

该种安装方式,环境要求:

  • WSL 版本 1.1.3.0 或更高版本。
  • Windows 11 64 位:家庭版或专业版 21H2 或更高版本,或企业版或教育版 21H2 或更高版本。
  • Windows 10 64 位:家庭版或专业版 21H2(内部版本 19044)或更高版本,或企业版或教育版 21H2(内部版本 19044)或更高版本。
  • 在 Windows 上启用 WSL 2 功能。有关详细说明,请参阅 安装 WSL | Microsoft Learn 。
  • 下载并安装 Linux 内核更新包。

系统要求就不说了,这里说下【启用 WSL2 功能】和【下载并安装 Linux 内核】

最简单的方式:

在管理员模式下打开PowerShellWindows命令提示符,输入wsl --install命令,然后重启计算机即可。

wsl --install

该命令将启用运行WSL并安装 Linux 的 Ubuntu 发行版所需的功能,另外该命令会自动将WSL升级为WSL2

如果你不想使用默认的ubuntu Linux内核,可使用wsl --install -d <Distribution Name>命令,详情参考 更改默认安装的 Linux 发行版

如果你运行的是旧版,或只是不想使用 install 命令并希望获得分步指引,请参阅 旧版 WSL 手动安装步骤

使用 WSL 安装 Linux 发行版的过程完成后,使用“开始”菜单打开该发行版(默认情况下为 Ubuntu)。 系统将要求你为 Linux 发行版创建“用户名”和“密码”。

(首次启动新安装的 Linux 发行版时,将打开一个控制台窗口,要求你等待将文件解压缩并存储到计算机上。 未来的所有启动时间应不到一秒)

3. 安装Docker Desktop on Windows

有两种安装方式:交互式安装、命令行安装。

这里选择交互式安装

1)双击已下载的Docker Desktop Installer.exe安装程序;

2)在安装确认提示中根据前面1、2小节中你准备的安装环境来确认是否勾选Use WSL 2 instead of Hyper-V;

需要注意的是,如果你的系统仅支持其中之一,你将无法选择使用何种方式。
docker 安装确认

3)安装成功后,单击close and log out退出以完成安装过程;

温馨提示:点击close and log out会注销当前系统用户,并且关闭掉已打开的应用程序,如果你有未保存的内容,请保存后再操作哦

命令行的安装方式,请参考:#install-from-the-command-line

4. 启动并验证Docker Desktop

1)安装完成后,Docker会自启动,你也可以点击Docker Desktop桌面图标,Windows搜索Docker来启动;

注意:首次启动,需要接受 Docker服务订阅协议。另外你可以注册登录Docker,也可以跳过登录

2)打开PowerShellWindows命令提示符,输入docker run hello-world

Docker run helloworld.png

docker run hello-world运行结果可看出docker安装完成并可正常运行;

另外,还能看出docker运行的基本过程:

  • Docker 先从本地找hello-world镜像;
  • 本地未找到,去从docker hub拉取镜像;
  • 然后使用找到的镜像创建一个容器实例并运行

3)可以在Docker Desktop 客户端,管理image、container等等

管理image和container



最后:

如果你使用的是 win7win8 等系统,可以利用docker toolbox来安装docker desktop

下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/



更多参考资料:

Install Docker Desktop on Windows | Docker Documentation

使用 WSL 在 Windows 上安装 Linux | Microsoft Learn

旧版 WSL 的手动安装步骤 | Microsoft Learn

设置 WSL 开发环境 | Microsoft Learn

WSL 的基本命令 | Microsoft Learn

相关文章:

【Docker 学习笔记】Windows Docker Desktop 安装

文章目录 一、前言二、Windows Docker 安装1. 基于Hyper-V后端和Windows容器的安装2. 基于WSL2后端的安装&#xff08;推荐&#xff09;3. 安装Docker Desktop on Windows4. 启动并验证Docker Desktop 一、前言 Docker并非是一个通用的容器工具&#xff0c;它依赖于已存在并运…...

getInputStream has already been called for this request 问题记录

问题背景 HttpServletRequest.getReader() HttpServletRequest.getInputStream() 不能在过滤器中读取一次二进制流&#xff08;字符流&#xff09;&#xff0c;又在另外一个Servlet中读取一次&#xff0c;即一个InputSteam(BufferedReader)对象在被读取完成后&#xff0c;将无…...

日撸代码300行:第60天(小结)

1、自己对于这个专栏的代码抄写也是断断续续&#xff0c;由于种种原因上次在第54天没坚持下来&#xff0c;这次继续希望能抄完。 2、现在代码的阅读和理解能力明显比刚开始抄代码的时候强了不少。感觉坚持到现在收获还是不小。现在基本上来说仔细想一下都能够理清楚代码的意思。…...

python和java哪个更有前景,python和java哪个更有前途

大家好&#xff0c;小编为大家解答python和java哪个好学,零基础的问题。很多人还不知道python和java哪个更容易入门&#xff0c;现在让我们一起来看看吧&#xff01; 进入编程行业是很多人的梦想&#xff0c;现在越来越多的人都想要通过培训的方式进入IT行业中&#xff0c;但是…...

LeetCode_11. 盛最多水的容器

题目描述 11. 盛最多水的容器 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/container-with-most-water/ 思路分析 这题就是典型的是一道很经典的面试题&#xff0c;最优的解法是双指针&#xff0c;但很多人在第一次看到这题的时候很难想到用双指针来…...

【Android】APP电量优化学习笔记

电量优化原因 电量优化在 Android 开发中非常重要&#xff0c;原因如下&#xff1a; 用户体验&#xff1a; 电池续航时间是用户在使用移动设备时非常关注的因素之一。通过进行电量优化&#xff0c;可以延长设备的电池寿命&#xff0c;使用户能够更长时间地使用设备而不必频繁…...

【微信小程序创作之路】- 小程序事件绑定、动态提示Toast、对话框 Modal

【微信小程序创作之路】- 小程序事件绑定、动态提示Toast、对话框 Modal 第六章 小程序事件绑定、动态提示Toast、对话框 Modal 文章目录 【微信小程序创作之路】- 小程序事件绑定、动态提示Toast、对话框 Modal前言一、事件是什么&#xff1f;二、小程序中常用事件三、事件传…...

MVC与MVVM模式的区别

一、MVC Model&#xff08;模型&#xff09;&#xff1a;用于处理应用程序数据逻辑&#xff0c;负责在数据库中存取数据。处理数据的crud View&#xff08;视图&#xff09;&#xff1a;处理数据显示的部分。通常视图是依据模型数据创建的。 Controller&#xff08;控制器&…...

【数据结构与算法】归并排序

归并排序 归并排序&#xff08;MERGE-SORT&#xff09;是利用归并的思想实现的排序方法&#xff0c;该算法采用经典的分治&#xff08;divide-and-conquer&#xff09;策略&#xff08;分治法将问题分&#xff08;divide&#xff09;成一些小的问题然后递归求解&#xff0c;而…...

OSG3.6.5 + VS2017前期准备及编译

OSG3.6.5 VS2017前期准备及编译 1、前期准备 1.1、osg稳定版本源码 Stable releases (openscenegraph.com) 1.2、osg依赖项 Dependencies (openscenegraph.com) 1.3、osg测试及演示数据 Data Resources (openscenegraph.com) 1.4、安装doxygen和Graphviz&#xff08;用…...

IPv6 over IPv4隧道配置举例

配置IPv6 over IPv4手动隧道示例 组网需求 如图1所示&#xff0c;两台IPv6主机分别通过SwitchA和SwitchC与IPv4骨干网络连接&#xff0c;客户希望两台IPv6主机能通过IPv4骨干网互通。 图1 配置IPv6 over IPv4手动隧道组网图 配置思路 配置IPv6 over IPv4手动隧道的思路如下&…...

【GitOps系列】使用 ArgoCD 快速打造GitOps工作流

文章目录 ArgoCD简介ArgoCD安装访问ArgoCDGitOps 工作流总览创建 ArgoCD 应用检查 ArgoCD 同步状态访问应用 连接 GitOps 工作流体验 GitOps 工作流生产建议1&#xff09;修改默认密码2&#xff09;配置 Ingress 和 TLS3&#xff09;使用 Webhook 触发 ArgoCD4&#xff09;将源…...

C#|无法打开cs文件设计窗口

报错信息&#xff1a;To prevent possible data loss before loading the designer, the following errors must be resolved: 解决方案&#xff1a;实不相瞒我把项目解决方案名称改短了就可以了。。有其他原因或者解决方案望不吝赐教。。...

【SpringBoot笔记36】SpringBoot自定义WebSocketHandler集成WebSocket

这篇文章,主要介绍SpringBoot自定义WebSocketHandler集成WebSocket。 目录 一、SpringBoot集成WebSocket 1.1、添加WebSocket依赖 1.2、自定义WebSocketHandler 1.3、注册WebSocket服务端...

flutter 图片相关

官方链接&#xff1a;https://api.flutter.dev/flutter/widgets/Image-class.html 图片基本使用 显示本地图片时,要在pubspec.yaml文件里面添加如:(注意空格) assets: - assets/images/logo.png Fit属性&#xff1a; BoxFit.cover最常用 显示可能拉伸&#xff0c;可能裁…...

将上位机程序从PC的window系统迁移至Intel NUC的无桌面版ubuntu系统问题记录

将上位机程序从PC的window系统迁移至Intel NUC的无桌面版ubuntu系统 问题一 网口失效 问题描述&#xff1a;NUC关机状态下&#xff0c;将网口与路由器连接&#xff0c;网络指示灯闪烁&#xff1b;NUC开机后&#xff0c;网络指示灯熄灭&#xff0c;使用ping命令&#xff0c;既…...

CHI中的error处理

Error Handling Error types 包含两种sub-packet级别的error, 和两种packe级别的error; Packet level error Data Error, DERR □ 访问的地址是正确的&#xff0c;但是访问的数据有错误&#xff1b;通常是在数据崩溃的时候使用&#xff0c;例如ECC&#xf…...

如何使用 PHP 进行数据库缓存处理?

当你想要让你的PHP应用程序更快时&#xff0c;数据库缓存是一个重要的工具。它可以帮助你避免频繁地查询数据库&#xff0c;提高应用程序的响应速度。不过&#xff0c;在进行数据库缓存处理时&#xff0c;需要注意一些细节&#xff0c;否则可能会得到相反的结果。下面&#xff…...

新版巨量广告投放技巧分析

新版广告系统&#xff0c;计划出价40&#xff0c;转化成本特别低只有21&#xff0c;同时消耗也比较慢 为什么刚开始成本都比较低&#xff0c;跑着跑着成本就高了&#xff0c;像这种情况一般如何操作&#xff1f; 一: 为什么会出现成本和出价差这么多 1&#xff1a; 系统对账…...

Vue3 导出excel

&#x1f642;博主&#xff1a;锅盖哒 &#x1f642;文章核心&#xff1a;导出excel 目录 首先&#xff0c;你需要安装xlsx库。可以使用npm或yarn来安装&#xff1a; 在Vue组件中&#xff0c;你可以使用xlsx库来生成Excel文件并提供一个导出按钮供用户下载。 在Vue 3中&…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关

在水泥厂的生产流程中&#xff0c;工业自动化网关起着至关重要的作用&#xff0c;尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关&#xff0c;为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多&#xff0c;其中不少设备采用Devicenet协议。Devicen…...

sshd代码修改banner

sshd服务连接之后会收到字符串&#xff1a; SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢&#xff1f; 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头&#xff0c…...

在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7

在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤&#xff1a; 第一步&#xff1a; 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为&#xff1a; // 改为 v…...

车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...

第22节 Node.js JXcore 打包

Node.js是一个开放源代码、跨平台的、用于服务器端和网络应用的运行环境。 JXcore是一个支持多线程的 Node.js 发行版本&#xff0c;基本不需要对你现有的代码做任何改动就可以直接线程安全地以多线程运行。 本文主要介绍JXcore的打包功能。 JXcore 安装 下载JXcore安装包&a…...