当前位置: 首页 > 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中&…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

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

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

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...