windows10 上安装 docker

windows 10 上安装 docker

官方目前给的方案是利用 Docker Desktop 来安装 docker 环境

一、安装前准备工作

1.1 检查系统要求

  • Windows 10 64 位:Home 或 Pro 2004(内部版本 19041)或更高版本,或者 Enterprise 或 Education 1909(内部版本 18363)或更高版本。
  • 在 Windows 上启用 WSL 2 (适用于 Linux 的 Windows 子系统)功能。
  • 要在 Windows 10 上成功运行 WSL 2,需要满足以下硬件先决条件:
  • 具有二级地址转换 (SLAT) 的64 位处理器(可下载微软官方Coreinfo工具检测)
  • 4GB 系统内存
  • 启用硬件虚拟化支持。
  • 下载并安装 Linux kernel 升级包

1.2 启用硬件虚拟化支持

右键开始打开【应用和功能(F)】-->程序和功能-->启用或关闭windows功能-->【适用于Linux的windows子系统】和【虚拟机平台】打勾。

点击确认后会提示重启电脑,重启过程可能需要占用较长的时间(15-30分钟),请耐心等待。

重启完成后,打开任务管理器-->性能,查看虚拟化是否已启用:

1.3 下载并安装Linux kernel升级包

参考资料:https://docs.microsoft.com/zh-cn/windows/wsl/install-win10#step-4---download-the-linux-kernel-update-package

在windows cmd中使用systeminfo查看系统类型,根据x64或者ARM64下载不同的内核更新包

开始安装:

二、下载安装Docker Desktop

完成安装前准备后,下载并安装Docker Desktop,可以从官方下载 https://desktop.docker.com/win/stable/amd64/Docker%20Desktop%20Installer.exe

下载完成后双击 Docker Desktop Installer,直接点击 OK 开始安装:

待安装完成之后,重启计算机

重启完成后,双击桌面Docker Desktop启动

三、在windows下使用docker

1.利用PowerShell

打开 PowerShell,启动一个镜像

docker run -d -p 80:80 docker/getting-started

查看镜像和容器

docker images
docker container ls -a

2.使用Docker Desktop上的图形化界面

还可以直接在Docker Desktop操作镜像:

查看运行的容器:

还可以设置镜像加速地址和本地镜像仓库:

四、docker镜像存储位置修改

WSL 2管理下的docker镜像会默认存放在C盘,长期可能会导致C盘空间不足,所以最好进行文件的迁移

1.了解 WSL 子系统

WSL 是 windows subsystem for linux 的简写,指的是 windows10 的一个子系统,这个子系统的作用是在 windows下运行 linux 操作系统。现在有两个版本,分别为 WSL 1 和 WSL 2。

WSL 和虚拟机从表面上看起来是有点类似,都可以运行 linux 操作系统,但实际上有所区别:

  • 集成水平:WSL 提供更深入的集成与主机操作系统Windows。例如,你可以在Windows的文件管理器中直接访问WSL文件系统,也可以在 WSL 中直接运行Windows的可执行文件。而虚拟机则创建了一个相对隔离的环境,虽然虚拟机可以访问主机文件系统,但需要特定的设置,并且整体上没有 WSL 那么直接和方便。
  • 性能:WSL 2 使用了一种轻量级的虚拟化技术,但是它的性能通常比全功能的虚拟机更好,特别是在文件系统性能方面。
  • 系统资源消耗:WSL 通常比全功能的虚拟机更节省系统资源。虚拟机需要为每个实例分配固定的内存和磁盘空间,而WSL的资源使用随着需求而动态变化。
  • 系统调用兼容性:WSL 1 通过转换 Linux 系统调用到 Windows 系统调用,WSL 2 通过提供一个完整的 Linux 内核来实现更好的兼容性。但是,一些特定的、高级的 Linux 系统调用可能在WSL中无法工作。而虚拟机则提供了一个完全的操作系统环境,可以支持所有的系统调用。
  • 安全隔离:虚拟机提供了一个与主机操作系统隔离的环境,因此通常更安全。虽然 WSL 2 也使用虚拟化技术,但它更加集成在主机操作系统中,因此可能没有虚拟机那么安全。

2.迁移 WSL 2 子系统

docker desktop 在安装的时候创建两个 wsl 子系统,使用命令wsl -l -v查看:

  • docker-desktop 是存放程序的,位置 %LOCALAPPDATA%/Docker/wsl
  • docker-desktop-data 是存放镜像的,位置 %LOCALAPPDATA%/Docker/wsl/data/ext4.vhdx

这两个 wsl 子系统都是默认放在系统盘的。

  • 步骤一:先关闭docker
  • 步骤二:停止所有子系统
wsl --shutdown
  • 步骤三:导出两个子系统
wsl --export docker-desktop docker-desktop.tar
wsl --export docker-desktop-data docker-desktop-data.tar
  • 步骤四:删除现有的子系统
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
  • 步骤五:重新载入 wsl 2 子系统(目标路径自己创建)
wsl --import docker-desktop D:\Docker\docker-desktop\ docker-desktop.tar --version 2
wsl --import docker-desktop-data D:\Docker\docker-desktop-data\ docker-desktop-data.tar --version 2
  • 注意:
  • docker-desktop 和 docker-desktop-data 不能放在同一个文件夹,需要分别创建目标路径
  • 一定要指定 --version 2 ,否则导入的会时 wsl 而非 wsl 2,从而导致 docker desktop 无法正常启动
  • 步骤六:重新启动docker desktop

五、与Boot2Docker比较

1.什么是 Boot2Docker

Boot2Docker 是一个轻量级的 Linux 发行版,专门用于运行 Docker 容器。它完全从 RAM 运行,只需要大约 45MB 的下载量并且可以快速启动。

其核心就是一个 boot2docker.iso 镜像文件。在非linux平台(比如mac或windows)中,通常需要跟virtualbox配合,先创建一个linux虚拟机,在虚拟机上跑boot2docker这个linux系统,然后linux系统里面运行docker。

2.比较

  • 系统要求
  •   Boot2Docker需要virtualbox配合运行一个精简linux发行版,不受限于windows的版本
  •   docker desktop 基于 WSL 2 是在一个完整的linux系统上运行,只能在window 10 特定版本以上使用
  • 体量
  •   Boot2Docker 更加轻量级,占据空间小
  •   docker desktop 相对占用更大的空间
  • 功能
  •   Boot2Docker 只提供了一个安装了docker的精简版linux环境,主要是设计用来开发环境使用的,不建议应用到任何生产环境
  •   docker desktop 提供完整的linux环境,而且docker desktop还提供了可视化的操作界面,可以快速搭建k8s或swarm集群
  • 支持
  •   Boot2Docker 官方已经不再维护,同时建议用户向docker desktop迁移
  •   docker desktop 持续维护中

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

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

相关文章

Redis中的复制功能(四)

复制功能 步骤2:建立套接字连接 在SLAVEOF命令执行之后,从服务器将根据命令所设置的IP地址和端口,创建连向主服务器的套接字连接,如图所示。如果从服务器创建的套接字能成功连接(connect)到主服务器,那么从服务器将为这个套接字…

软考109-上午题-【计算机网络】-网络设备

一、网络设备 1-1、物理层的互联设备 物理层的设备:中继器、集线器 1、中继器 中继器,可以使得两个链路在物理层上互联。 可以使得信号再生,信号增强。因此,中继器使得接受用户,收到衰减很小的原始信号 2、集线器&a…

【Java EE】关于Maven

文章目录 🎍什么是Maven🌴为什么要学Maven🌲创建⼀个Maven项目🌳Maven核心功能🌸项目构建🌸依赖管理 🍀Maven Help插件🎄Maven 仓库🌸本地仓库🌸私服 ⭕总结 …

Whisper对于中文语音识别与转写中文文本优化的实践(Python3.10)

原文:Whisper对于中文语音识别与转写中文文本优化的实践(Python3.10) - 知乎 阿里的FunAsr对Whisper中文领域的转写能力造成了一定的挑战,但实际上,Whisper的使用者完全可以针对中文的语音做一些优化的措施,换句话说,…

前端:登录界面

效果 代码 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthde…

SpringBoot整合ELK8.1.x实现日志中心教程

目录 背景 环境准备 环境安装 1.JDK安装 2.安装Elasticsearch 3.安装zookeeper 4.安装Kafka 5.安装logstash 6.安装file beat 解决方案场景 1.日志采集 1.1 应用日志配置 1.1.1 创建logback-spring.xml文件 1.1.2 创建LoggerFactory 1.1.3 trace日志的记录用法 …

Linux上管理文件系统

Linux上管理文件系统 机械硬盘 机械硬盘由多块盘片组成&#xff0c;它们都绕着主轴旋转。每块盘片上下方都有读写磁头悬浮在盘片上下方&#xff0c;它们与盘片的距离极小。在每次读写数据时盘片旋转&#xff0c;读写磁头被磁臂控制着不断的移动来读取其中的数据。 所有的盘片…

实操:Dropzone.js实现文件上传

&#x1f3e0;官网 点我前往 &#x1f953;依赖 <script src"https://unpkg.com/dropzone5/dist/min/dropzone.min.js"></script> <link rel"stylesheet" href"https://unpkg.com/dropzone5/dist/min/dropzone.min.css" type&…

手搓链表(java)(不完整)

手搓链表&#xff08;java&#xff09;&#xff08;不完整&#xff09; 文章目录 手搓链表&#xff08;java&#xff09;&#xff08;不完整&#xff09;前言一、代码1.MyLinkedList类&#xff1a;2.测试类&#xff1a; 总结 前言 提示&#xff1a;以下是本篇文章正文内容&…

LeetCode_876(链表的中间结点)

//双指针//时间复杂度O(n) 空间复杂度O(1)public ListNode middleNode(ListNode head) {ListNode slowhead,fast head;while (fast!null && fast.next!null){slow slow.next;fast fast.next.next;}return slow;} 1->2->3->4->5->null 快指针移动两个…

Linux中的shell脚本之流程控制循环遍历

3 条件判断 4 流程控制语句 1&#xff09;if 语句 案例&#xff0c;用户输入用户名和密码&#xff0c;判断用户名是否是admin,密码是否是123,如果正确&#xff0c;则显示登录成功 首先我创建了shell文件&#xff0c;touch getpawer 其中getpawer 是我自己命的名 #!/bin/bas…

Linux-4 gcc和makefile

Linux编译器-gcc/g使用 1.设计样例 c语言&#xff1a;linux中用的stdc99版本--可能会出现其他问题 c&#xff1a;Linux中用的stdc11--使用c11版本 Linux没有文件格式的区分&#xff0c;但是编译器区分 gcc编译器的文件格式是filename.c g编译器的文件格式是filename.cc或者fil…

蓝桥杯练习笔记(十七)

蓝桥杯练习笔记&#xff08;十七&#xff09; 一、 输入样例 7 7 1000001 0100010 0010100 0001AAA 00010A0 00010A0 00010A0蓝桥官网题解&#xff1a; 该题解是用了三个循环分别对三个方向的相同字符的长度进行统计&#xff0c;找出最大长度&#xff0c;最后对找出的最长Y进…

做好产品定位的3个重点

产品定位对于项目而言至关重要&#xff0c;正确的产品定位有助于项目锁定目标市场&#xff0c;精准满足客户需求。通过差异化产品策略&#xff0c;让产品在众多竞品中脱颖而出&#xff0c;形成独特竞争优势&#xff0c;从而有助于产品价值的实现。 因此做好产品定位迫在眉睫&am…

软件杯 深度学习中文汉字识别

文章目录 0 前言1 数据集合2 网络构建3 模型训练4 模型性能评估5 文字预测6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习中文汉字识别 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xf…

【Linux】从零认识文件操作

送给大家一句话&#xff1a; 要相信&#xff0c;所有的不美好都是为了迎接美好&#xff0c;所有的困难都会为努力让道。 —— 简蔓《巧克力色微凉青春》 开始理解基础 IO 吧&#xff01; 1 前言2 知识回顾3 理解文件3.1 进程和文件的关系3.2 文件的系统调用openwrite文件 fd 值…

OpenHarmony实战:小型系统平台驱动移植

在这一步&#xff0c;我们会在源码目录//device/vendor_name/soc_name/drivers目录下创建平台驱动。 建议的目录结构&#xff1a; device ├── vendor_name │ ├── drivers │ │ │ ├── common │ │ │ ├── Kconfig # 厂商驱动内核菜单入口 │ …

七大开源基金会联合制定符合 CRA 法案的共同标准

欧洲议会上个月通过的《欧洲网络弹性法案》(CRA) 制定通用规范和标准 Apache 软件基金会、Blender 基金会、Eclipse 基金会、OpenSSL 软件基金会、PHP 基金会、Python 软件基金会 和 Rust 基金会 这项工作由 Eclipse 基金会牵头&#xff0c;旨在建立基于现有开源最佳实践的安全…

9.图像中值腐蚀膨胀滤波的实现

1 简介 在第七章介绍了基于三种卷积前的图像填充方式&#xff0c;并生成了3X3的图像卷积模板&#xff0c;第八章运用这种卷积模板进行了均值滤波的FPGA实现与MATLAB实现&#xff0c;验证了卷积模板生成的正确性和均值滤波算法的MATLAB算法实现。   由于均值滤波、中值滤波、腐…