我的编程空间,编程开发者的网络收藏夹
学习永远不晚

在Windows系统上可以用Docker吗

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

在Windows系统上可以用Docker吗

这篇文章主要讲解了“在Windows系统上可以用Docker吗”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在Windows系统上可以用Docker吗”吧!

Docker,或者准确一点说,容器技术,在近几年里几乎成为了应用分发和集群部署的默认技术了。Docker 生态的成熟还有赖于其周边工具和实践模式的兴起。比如,曾经雨后春笋般出现的编排技术,以及基于容器技术的 DevOps 实践大规模地开展。

那么这么好的技术,在 Windows 上能用吗?在各种场合,都有人与我讨论这个的话题。每次听到这样的疑问,我也是很无奈的。毕竟,只要稍微搜索一下,就不难回答:是可以的。不过,深入想一下,人们有这样的疑问也是有道理的:毕竟 Docker 是起源于 Linux 上的技术。

Docker 是基于 Linux 内置的 Namespace 和 CGroup 等系统内隔离机制而抽象出来的一种轻虚拟化技术。与虚拟机相比,它以一种轻量级的方式实现了运行空间的隔离。如果物理机是一幢住宅楼,虚拟机就是大楼中的一个个套间,而容器技术就是套间里的一个个隔断。不难理解,Docker 作为一种隔断,它并不能基于一种内核(Linux)提供另一种内核(Windows)的虚拟化运行环境。所以,基于 Linux 的 Docker 是不支持运行 Windows 应用的。

早在 Docker 之前,Linux 就已经提供了今天的 Docker 所使用的那些基础技术。当年 Docker 仿佛一夜之间突然火爆全球的背后,技术上的积累并不是瞬间完成的。这一切在 Windows 上显得有些滞后。在 Docker 已经众所周知的时候,Windows 系统却根本没有类似的机制,更别提 Windows 独有的工具链和实践方法了。所以,我们看到,早期 Windows 与 Docker 的交集只是为其提供应用开发环境。

boot2docker 与 Docker for Windows

可以在 Windows 开发面向 Docker 部署的应用程序——Windows 的桌面体验比 Linux 好太多,所以很早就出现了在异构操作系统上以虚拟机的形式运行 Docker 的项目出现,也就是 boot2docker。它既支持 Windows,也支持 macOS。

后来,Docker 公司开始推出自己的 Docker for Windows 工具包,它旨在为开发人员在 Windows 上开发面向 Docker 的应用程序提供完整的工具链,其中包括运行环境、客户端,Docker Swarm 编排工具和其他工具。Docker for Windows 中负责运行环境配置的工具是 Docker Machine。与 boot2docker 类似,Docker Machine 也会在 Windows 上创建一个 Linux 虚拟机,用于运行 Docker 引擎。也就是说,这个环境也只支持 Linux 的应用程序格式的,并不支持 Windows 应用程序的运行。

在Windows系统上可以用Docker吗

在 Windows 上运行的 Docker for Windows(图片来自 Docker 文档)

Windows 容器技术

正当 Linux 世界的容器技术借着 Docker 的东风刮遍世界的时候,Windows 系统也发现了容器粒度的重要性。 微软与 Docker 在 2014 年宣布了合作,以期将容器技术带到 Windows Server 操作系统,并为传统的 Windows 应用程序的容器化改造提供更直接的支持。不久之后,微软在 Ignite 2015 上宣布将推出为容器优化的 Windows Nano Server;第一次 Windows 容器真正与与开发者见面是在 Windows 10 的年度更新(2016.8)上,它正式提供 Windows 容器的开发环境。在 2017 年 10 月发布的 Windows Server 1709 版本包含了 Windows 容器,意味着这项技术可以用于生产环境了。Windows 容器是真正能够运行 Windows 应用程序的容器技术,包括依赖 IIS、注册表等大量 Windows 特性的应用程序都可以在 Windows 容器中运行。

虽然 Windows 对容器的支持有些姗姗来迟,但社区对 Windows 容器的关注和运用却是异常活跃。这主要得益于容器技术本身生态的成熟,一来人们对这项技术已经有了充分的认知,同时周边工具和实践都已经日趋完善。另一方面,在与 Docker 公司一同打造这项技术的过程中,也注意了与已有技术的兼容性。人们发现,在电脑上启用 Windows Container 功能之后,接下来的操作步骤仍然是基于 Docker 客户端完成的,命令行参数与 Linux 上的 Docker 也没有区别。

在Windows系统上可以用Docker吗

几乎与 Windows 容器技术本身日趋成熟过程的同时,周边工具对 Windows 容器的支持也在同步完善。Docker for Windows 在新的版本中添加了一个贴心的菜单,可以一键切换 Linux 容器和 Windows 容器;Kubernetes 从 1.5 版本开始增加对 Windows 容器的支持;云环境方面,包括 Azure 和 AWS 在内的众多云环境都第一时间提供了 Windows 容器的支持……

在Windows系统上可以用Docker吗

切换容器运行时

Windows 容器架构

Windows 是如何既提供自有容器技术,又提供与 Docker 兼容的操作接口的呢? 下面的上图是 Linux 容器的架构,下图则是 Windows 容器的。可以发现两者结构很类似。与 Linux 类似,Windows 也新新抽象出来了 CGroup 和 Namespace 的概念,并提供出一个新的抽象层次 Compute Service,即宿主机运算服务(Host Compute Service,hcs)。相较于底层可能经常重构的实现细节,hcs 旨在为外部(比如 Docker 引擎)提供较稳定的操作接口。hcs 的操作接口目前有 Go 语言版本,以及 C# 语言版本,前者目前在 Docker 客户端中用来操作 Windows 容器。

在Windows系统上可以用Docker吗

图片来自 Black Belt 在 DockerCon 的演讲:Docker 与 Windows 容器揭秘

容器镜像方面,微软自己提供了 Server Core 和 Nano Server 两种服务器版本。Server Core 可以理解为 Windows Server 去掉了 GUI 的部分,因此功能更完整(比如包括文件服务器、DNS 服务器等功能),同时镜像大小也更大(2GB~5GB);而 Nono Server 则是专为容器优化的迷你型系统,只包含有核心的 Windows 服务器功能,镜像大小为(130MB~400MB)。基于基础镜像来构建自己镜像的方法与 Linux 镜像是一样的,所以 DockerFile 文件的格式和语法并没有不同。 授权方面,只要用户已经取得宿主机的授权,微软并不会单独向用户收取容器镜像的授权费。

小结

容器技术本身以及围绕它的一系列工具和实践让应用程序的打包和发布变得标准化,很大程度上可以消除应用程序对特定环境的依赖,进而为高效的集群化部署和运维提供有力保障。作为容器技术的代表,Docker 可以以两种形式运行在 Windows 上:以 Hyper-V 虚拟机的形式运行 Linux 格式的容器,或者运行原生的 Windows 容器。其中前者运行 Linux 格式的应用程序,后者能运行 Windows 应用程序。如果稍微用一点技巧,还可以让这两者同时运行在 Windows 电脑上。

Windows 10 和 Windows Server 都提供了对 Windows 容器的支持,各种容器化工具对 Windows 容器的支持也在日趋完善当中。基于 Windows 开发新的应用时一方面可以优先考虑跨平台容器化部署的能力,另一方面也可以与存量应用程序一样考虑借助 Windows 容器技术实现容器化、云原生的特性。

感谢各位的阅读,以上就是“在Windows系统上可以用Docker吗”的内容了,经过本文的学习后,相信大家对在Windows系统上可以用Docker吗这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

在Windows系统上可以用Docker吗

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

在Windows系统上可以用Docker吗

这篇文章主要讲解了“在Windows系统上可以用Docker吗”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在Windows系统上可以用Docker吗”吧!Docker,或者准确一点说,容器
2023-06-04

Win7/8.1用户可以免费升级到Windows 11系统吗?

之前有消息称,Windows 10系统用户会免费升级Windows 11,而Windows 7、8.1用户呢? 如果你也担心这个问题,那么大可不必,目前,Windows 7/8.1 依然能够通过某些途径免费升级到 Windows 10 系统
2023-05-23

云服务器可以装双系统吗手机可以用吗

云服务器可以安装两个系统,也可以只安装一个系统。安装一个系统可以让云服务器具有更好的可扩展性和灵活性,可以适应不同的应用场景。另外,由于不同的操作系统对应用的兼容性和适配性不同,安装云服务器可以让你的应用更好地适应操作系统的差异性。因此,如果你只考虑在云服务器上部署应用,那么可以安装一个系统。但是如果你有多个应用需要同时部署,那么可以考虑同时部署多个系统,以确保应用之间的兼容性和稳定性。
2023-10-27

信息系统项目管理师证书在上海可以加分吗?

  信息系统项目管理师证书在上海可以加分吗?能加多少分?一起来看看信息系统项目管理师证书在上海落户是否可以加分吧!今天编程学习网小编来为大家解答。  根据《上海市居住证积分管理办法(沪府发〔2017〕98号)》,专业技术职称和技能等级的积分指标及分值如下:  专业技术职称和技能等级指标最高分值140分。持证人在本市工作期间
信息系统项目管理师证书在上海可以加分吗?
2024-04-18

云服务器里面装虚拟机可以吗安卓系统可以用吗

虚拟机(VirtualMachine,简称VM)是一种可以在同一台计算机系统上运行多个虚拟硬件驱动程序的软件系统,通常需要一个运行服务器操作系统和应用程序的虚拟机管理器才能正常运行,而在云服务器中,由于虚拟机可以直接从服务器端访问,因此可以通过安装虚拟化软件来实现VM的部署。不过,由于需要在云服务器的数据中心中进行虚拟化,因此需要使用专门的虚拟化软件和管理工具。如果你在云服务器中使用VM,那么就可以直接从服务器的虚拟硬...
2023-10-26

内地的windows系统电脑可以登录Google登录gmail吗?

如今Google,gmail受国内IP限制,不能上这些网站。在这里教大家如何设置更换IP打开这些网站 1、进入控制面板2、找到“网络和共享中心”3、选择“设置新的连接或网络”4、连接到工作区5
2023-06-16

LinuxMint系统桌面Note可以用斜体字吗?

Mint Linux桌面Note怎么设置使用斜体字?不用着急,很简单的,该怎么给字体添加倾斜效果呢?下面我们就来看看详细的教程。1、右键点击Note。2、点击配置。3、下拉设置页面。4、点击Italic开关。5、打开开关就会使用斜体字了。以
2022-05-23

Caffe框架可以在哪些操作系统上运行

Caffe框架可以在以下操作系统上运行:LinuxWindowsmacOSCaffe框架的官方支持包括Ubuntu和Windows,同时也可以在其他Linux发行版和macOS上运行。最新版本的Caffe可能已经扩展支持了更多操作系统,
Caffe框架可以在哪些操作系统上运行
2024-03-11

云服务器可以和别人一起用么嘛安卓系统可以用吗

如果你和你的朋友或者家人一起使用云服务器,你可以在云服务器上创建一个应用程序,每个人都可以在自己的设备上登录和使用应用程序。这不仅可以让大家更方便地分享内容,还可以更好地管理应用程序。例如,你可以让你的朋友们在他们的设备上访问你的应用程序,然后你可以将应用程序从你的设备同步到云服务器上,以便他们可以随时随地访问和使用应
云服务器可以和别人一起用么嘛安卓系统可以用吗
2023-10-28

阿里云服务器是否可以更换为Windows 7系统?安全吗?

随着科技的发展,云服务器的使用越来越普遍。然而,一些用户可能会发现他们需要在阿里云服务器上安装Windows7系统,以满足他们的特定需求。然而,这是否可行?安全吗?这篇文章将详细解答这些问题。阿里云服务器是否可以更换为Windows7系统?答案是肯定的。阿里云服务器允许用户在操作系统上进行更改。因此,用户可以轻松
阿里云服务器是否可以更换为Windows 7系统?安全吗?
2023-10-31

盗版windows系统可以免费升级win10吗 一键升级win10方法

昨日微软硬件工程产业创http://www.cppcns.com新峰会在深圳举行,会议上宣布将于今年夏天正式发布win10,微软将提供用户一键免费升级win10,很多用户会问如果本地电脑里安装的盗版Windows系统可以免费升级win10吗
2023-06-12

软考系统分析师可以考吗?有什么用?

软考系统分析师是中国信息技术教育认证的一种资格认证考试,由工业和信息化部主管,旨在评估和认证IT专业人士的专业技能和知识。考取软考系统分析师证书对于个人职业发展和企业选拔人才都有多方面的作用。具体请见下文。
软考系统分析师可以考吗?有什么用?
2024-04-25

华为云服务器购买后可以升级嘛安卓系统可以用吗

华为云服务器可以通过安装最新的ApacheCloudFoundation(ApacheCloudEC2)来实现升级。该软件是由华为公司推出的免费开源云操作系统,支持多种操作系统,如Windows、macOS、Linux等,用户可以从官方网站或在华为授权合作伙伴处进行下载,然后安装并使用该软件。具体来说,在华为云服务器上升级操作系统的步骤如下:安装ApacheCloudFoundation(
2023-10-26

2024上半年数据库系统工程师证书领取在几月?可以邮寄吗?

2024上半年数据库系统工程师证书领取在几月?2024上半年数据库系统工程师证书领取可以邮寄吗?针对这些问题,编程学习网小编为大家带来2024上半年数据库系统工程师证书领取相关的内容,详见正文。
2024上半年数据库系统工程师证书领取在几月?可以邮寄吗?
2024-06-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录