# Docker说明、安装(Windows10家庭版)

news2024/11/25 1:36:29

Docker说明、安装(Windows10家庭版)

Docker是什么?它是干嘛的?

开始,我就知道别人说是用来加工tar包的。tar包?又是干什么用的?
tar包,个人粗俗的理解就是一个环境,里面有能让程序运行起来所需要的依赖。比如我们常使用anaconda定义一个环境:

conda create --name ***  python=*.*.*  #如conda create --name env_name python=3.7

这里的env_name 就是一个环境(名),python就是一个依赖。当然,一个程序特别是深度学习的肯定还会用到其他依赖,如pytorch、tensorflow、pillow、opencv等等,这些依赖都可以安装在env_name这个环境下。

如果现在有另外一台机子没有安装python,更不可能有上面的依赖,而我想把一个能在env_name 环境下运行的程序放在这个机子上运行起来应该要怎么做呢?你可能会想到在这个机子上安装与env_name一样的依赖,然后运行该程序,确实可以这样做。但是否也可以通过类似镜像的方式将env_name 环境直接移植到这台机子上呢?答案是可以的。先来说下tar包:
tar包就是将环境(有很多依赖)打包成.tar形式的文件格式,如tar包可以命名为cuda11.1-torch1.10.1-py37.tar,这个.tar文件里有env_name环境里的所有依赖。有了tar包之后就可以将这个tar包导入到Docker中,更确切的说,是使tar包在Docker里生成一个镜像,这样就能让相同的程序在这台机子上运行了。

更灵活的是,Dokcer(执行的linux语句,但这个Docker可以在windows里安装,相当于一个虚拟机),可以对已有的镜像(其实还要生成容器,不用担心容器又是什么,你暂时理解镜像相当于Java中的类,容器是这个类实例化后的对象,即容器是继承了镜像的所有东西,当然也就包含了所有依赖)进行二次依赖的安装,比如cuda11.1-torch1.10.1-py37.tar里缺少tqdm这个依赖,那么Docker可以在容器里安装tqdm。
现在来看看百度百科对Docker的解释:
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

再联系我在上面作出的讲解,您是否对Docker有了较为清晰的认知呢。

Docker安装(Windows10家庭版)

Windows10家庭版是我电脑的系统

安装Dokcer之前,我们先安装wsl2(适用于Windows的Linux子系统 ),因为Docker是基于linux运行的,wsl2是wsl的升级版:

  • 在 Windows功能 中勾选 适用于Linux的Windows子系统 和 虚拟机平台 选项
    在这里插入图片描述
    在这里插入图片描述

  • 安装wsl
    安装wsl有个前提条件,必须运行windows10版本2004及更高版本(内部版本19041及更高版本)或Windows11。

    若要检查 Windows 版本及内部版本号,按下 Windows + R,然后键入“winver”,选择“确定” 。 可通过选择“开始”>“设置” >“Windows 更新”>“检查更新”来更新到最新的 Windows 版本。
    在这里插入图片描述
    (1)在管理员方式运行PowerShell或Windows命令提示符中输入wsl --install,然后重启计算机来安装运行适用于Linux的Windows子系统(wsl)所需的全部内容。
    在这里插入图片描述
    但我的电脑在输入wsl –install后弹出以下内容
    在这里插入图片描述
    经百度发现这是电脑已经有wsl了,若担心没有,可以更新wsl ,命令为wsl –update,会自动下载并更新wsl的。
    若正常,在输入wsl –install后应该是以下界面(我从网上截取的,所以跟我的终端界面看起来不一样)
    在这里插入图片描述
    (2)Linux内核更新包
    [https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi]
    点击后下载并双击执行就好。
    (3)将WSL2设置为默认版本
    控制台输入wsl --set-default-version2
    在这里插入图片描述
    至此,有关wsl2的安装已完成。

  • 安装Docker
    (1)下载安装包
    官方下载链接:https://docs.docker.com/desktop/windows/install/
    在这里插入图片描述
    (2)安装
    点击刚下载的安装包,勾选如下选项。
    网上找的图片,所以有Install required Windows components for WSL2这个选项
    巧的是我Configuration窗口没有Install required Windows components for WSL2这个选项(图片是网上找的,所以还有)。我担心电脑安装wls2没成功,重启电脑后发现还是没有。但后来发现不影响,后续会知道。
    Docker默认安装在C:\Program Files目录下。
    (3)选择wsl2作为Docker的运行平台
    点击桌面上的Docker图标,勾选Settings > General > use the WSL2 based engine, 使用基于WSL2的引擎,点击Apply&Restart,等待Docker重启。本来这个选项选上后应该是蓝色显示的,但我的是灰色,说明Docker就是默认使用wsl2了,这也表明上面的Configuration没有这个选项的原因了,因为我的windows默认使用wsl2。
    在这里插入图片描述
    (4)查看Docker是否在wsl2系统下运行的
    在终端运行 wsl -l -v
    在这里插入图片描述
    这时候你的Docker就可以正常使用了。
    (5)docker-desktop-data 路径转移
    在用Docker之前,要先把Docker保存的数据(docker-desktop-data 如镜像、容器)要另存到其他盘上,因为很占空间,怕C盘吃不消。
    执行下面步骤前,先将Docker程序退出。然后进入终端:

  • i .停止虚拟机

# 停止虚拟机
wsl --shutdown
# 停止虚拟机的一部分, 如 docker-desktop-data
wsl --terminate docker-desktop-data
  • ii .导出映像文件
# 先在空间较大的盘上创建存放docker-desktop.tar的文件夹。
 wsl --export docker-desktop-data E:/WSL/docker-desktop-data/docker-desktop.tar
  • iii .注销原来的 Docker 镜像
wsl --unregister docker-desktop-data
  • iv .从tar 文件,将导出的 Docker 镜像再导入回wsl
wsl --import docker-desktop-data E:/WSL/docker-desktop-data E:/WSL/docker-desktop-data/docker-desktop.tar
  • v .重启docker完成
    导入完成确认镜像没问题后导出的.tar文件可以删除
del E:/WSL/docker-desktop-data/docker-desktop.tar

我把我自己的操作过程放在这里供大家参考:
在这里插入图片描述
到此,Docker的安装已基本结束了。有关Docker的实战,等后期有时间再做补充…

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

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

相关文章

CVPR2021 | VQGAN+:Taming Transformers for High-Resolution Image Synthesis

原文标题:Taming Transformers for High-Resolution Image Synthesis 主页:Taming Transformers for High-Resolution Image Synthesis 代码:https://github.com/CompVis/taming-transformers transformer比CNN缺少了归纳偏置和局部性&…

音视频编解码经典问题汇总(1)

前言: 大家好,今天给大家分享的内容是关于平时在做音频编解码会遇到的一些问题,比如说:解码播放的时候,播不出来解码播放的时候,画面有条纹编码的时候,修改分辨率大小,没有反应这三个…

【NumPy 数组副本 vs 视图、NumPy 数组形状、重塑、迭代】

🤵‍♂️ 个人主页老虎也淘气 个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏…

实验五 进程通信-管道通信

1. 函数int pipe(int fd[2])创建一个管道,管道两端可分别用描述字fd[0]以及fd[1]来描述。需要注意的是,管道的两端是固定了任务的。即一端只能用于读,由描述字fd[0]表示,称其为管道读端;另一端则只能用于写&#xff0c…

我失业了?| ChatGPT生信分析初体验

最近ChatGPT火的一塌糊涂,作为在生物医学和计算机科学领域夹缝求生的边缘摇摆人,也来蹭一波热度。ChatGPT是一个预训练的语言模型,由OpenAI训练。它可以用来生成自然语言文本,并且可以进行对话。它基于Transformer架构&#xff0c…

OAuth2.0的四种授权方式

前言 OAuth 简单理解就是一种授权机制,它是在客户端和资源所有者之间的授权层,用来分离两种不同的角色。在资源所有者同意并向客户端颁发令牌后,客户端携带令牌可以访问资源所有者的资源。 OAuth2.0 是 OAuth 协议的一个版本,有…

【计算机毕业设计】77.旅游资源网站源码

一、系统截图(需要演示视频可以私聊) 摘 要 本论文主要论述了如何使用JAVA语言开发一个旅游资源网站 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中&#xf…

MATLB|分布式能源的选址与定容IEEE30节点实现

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清…

Jmeter(四):请求默认值元件应用,模拟http请求实战,正则表达式提取器元件讲解

Jmeter(7):jmeter请求默认值元件应用 HTTP请求默认值 在公司内部进行测试的时候,一般测试环境访问的接口地址(服务器名称 或IP)、端口、协议一般都是不变的,但http请求取样器每个请求都要求写一遍 这些信息&#xff0…

购物网站系统

视频如下 go网站前台:关于我们、联系我们、公告信息、商品类型、商品信息、商品评论管理员: 1、管理关于我们、联系我们 2、增删改查公告类型、公告信息 3增删改查商品类型、商品信息 4、查看注册用户信息 5、查看用户充值信息 6、查看回复用户咨询 7、查看下单信息 8、发货、查…

微信支付API3 APP【统一下单 APIV3】

官方参考资料 签名:签名生成-接口规则 | 微信支付商户平台文档中心 签名生成:签名生成 - WechatPay-API-v3 统一下单接口:微信支付-开发者文档 如何查看证书序列号:证书相关 - WechatPay-API-v3 私钥和证书:私钥和…

EXCEL基础:数据透视表(按年龄分组统计与统计各部门的工资情况)

【按年龄分组进行统计】: 如下为原始数据,最后就是年龄字段: 选择数据单元格,在新表里插入【数据透视表】,若数据透视表的【字段列表】没有显示,可以按照1标注那里勾选, 按照2处的列、行和统计…

Pytorch:使用官网提供数据集的相关参数设置,以CIFAR10为例进行说明

文章目录前言一、Dataset定义-组成分类二、获取数据集1.参数说明2.相关Demo前言 本文记录笔者关于Dataset的相关学习记录,以Pytorch官网文档为主进行学习 一、Dataset 定义-组成 所谓Dataset,指的是我们在学习神经网络中要接触的数据集,一…

[附源码]Python计算机毕业设计SSM基于的楼盘销售系统的设计与实现(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

关于近期虚拟化学习遇到的问题总结

一、关于Intel VT-x/EPT. 不使用虚拟化的Intel VT-x/EPT 因为需要在Linux中使用kvm做虚拟化因此需要开放宿主虚拟机的虚拟权限 但是打开报错 首先想要开启虚拟化,你的cpu是一定要支持虚拟化的 如何查看呢,可以ctrlaltdel打开任务管理器 点击性能 可以看…

电子加速器原理与应用

辐射单位 射线能量ϵ\epsilonϵ,单位eVeVeV ϵhν\epsilon h\nuϵhν,普朗克常数hhh,电磁波频率ν\nuν 电子伏特eVeVeV:一个电子(电量为1.610C)经过1VVV的电位差加速后获得的动能。 1eV1.610−19J1.610−…

计及碳捕集电厂低碳特性的含风电电力系统源–荷多时间尺度调度方法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

[附源码]Python计算机毕业设计SSM基于的楼盘销售管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Java基本微信小程序的适老化老人健康预警系统 springboot+vue

随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&#xf…

LinkedList(Java8)个人理解

问题:LinkedList 的 Node 怎么理解? Node 是 LinkedList 的私有静态内部类,作为链表结构的基本元素,可以看作是链条上的一个节(结)点。一个 node 对象中除了存储元素的值外,还存储着前一个 nod…