返回顶部
首页 > 资讯 > 精选 >在Windows系统上可以用Docker吗
  • 815
分享到

在Windows系统上可以用Docker吗

2023-06-04 17:06:03 815人浏览 八月长安
摘要

这篇文章主要讲解了“在windows系统上可以用Docker吗”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在Windows系统上可以用Docker吗”吧!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吗这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 在Windows系统上可以用Docker吗

本文链接: https://lsjlt.com/news/238631.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 在Windows系统上可以用Docker吗
    这篇文章主要讲解了“在Windows系统上可以用Docker吗”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在Windows系统上可以用Docker吗”吧!Docker,或者准确一点说,容器...
    99+
    2023-06-04
  • 云服务器可以装双系统吗手机可以用吗
    云服务器可以安装两个系统,也可以只安装一个系统。安装一个系统可以让云服务器具有更好的可扩展性和灵活性,可以适应不同的应用场景。另外,由于不同的操作系统对应用的兼容性和适配性不同,安装云服务器可以让你的应用更好地适应操作系统的差异性。因此,如...
    99+
    2023-10-27
    可以用 双系统 服务器
  • Win7/8.1用户可以免费升级到Windows 11系统吗?
    之前有消息称,Windows 10系统用户会免费升级Windows 11,而Windows 7、8.1用户呢? 如果你也担心这个问题,那么大可不必,目前,Windows 7/8.1 依然能够通过某些途径免费升级到 Win...
    99+
    2023-05-23
    Win7 Win11 windows11升级
  • iPhone系统可以降级吗?
    iPhone发布新系统,大家总是会忍不住去更新,尝试新的功能,但是有些时候新的iOS可能并不适合我们的机型,这种时候,大家就会想到退回原来的系统。那么iPhone可以降级更新吗? 可以降级,但有条件 首先,iPhone上没有提供降级系统功能...
    99+
    2023-08-31
    iphone ios 经验分享 xcode windows
  • golang可以写操作系统吗
    go 语言可以用来编写操作系统。它的并发性、跨平台特性、内存管理机制和简洁语法使其成为操作系统开发的一种有吸引力的选择。目前,已经有一些使用 go 语言编写的操作系统项目,如 goos、...
    99+
    2024-04-21
    linux golang macos
  • 云服务器里面装虚拟机可以吗安卓系统可以用吗
    虚拟机(Virtual Machine,简称VM)是一种可以在同一台计算机系统上运行多个虚拟硬件驱动程序的软件系统,通常需要一个运行服务器操作系统和应用程序的虚拟机管理器才能正常运行,而在云服务器中,由于虚拟机可以直接从服务器端访问,因此可...
    99+
    2023-10-26
    可以用 虚拟机 服务器
  • golang可以编写操作系统吗
    golang可以编写操作系统。golang是一种静态语言,被广泛用于开发Web应用和分布式系统,可以用于编写操作系统,golang对于操作系统开发的用途与C或C++相似,但golang却更加简洁、可读性更好、易于编写多线程应用程序,使用Go...
    99+
    2023-07-10
  • 阿里云ecs可以改系统吗
    1. 简介 阿里云ECS(Elastic ComputeService)是一种弹性计算服务,提供了可扩展、安全、高性能的云计算能力。作为阿里云的核心产品之一,ECS为用户提供了强大的计算能力,让用户能够灵活地部署和管理自己的应用和服务。在使...
    99+
    2024-01-22
    阿里 系统 ecs
  • 内地的windows系统电脑可以登录Google登录gmail吗?
    如今Google,gmail受国内IP限制,不能上这些网站。在这里教大家如何设置更换IP打开这些网站 1、进入控制面板 2、找到“网络和共享中心” 3、选择“设置新的连接或网络&r...
    99+
    2023-06-16
    google gmail gmail.google.com google gmail邮箱 Google 电脑 系统 windows
  • iis在linux上可不可以用
    本文小编为大家详细介绍“iis在linux上可不可以用”,内容详细,步骤清晰,细节处理妥当,希望这篇“iis在linux上可不可以用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。...
    99+
    2023-03-23
    linux iis
  • 可以在云主机上打游戏吗
    可以在云主机上打游戏,但是要注意云主机的配置和网络连接的稳定性。云主机的配置需要满足游戏的硬件要求,包括处理器、内存、显卡等。网络连...
    99+
    2023-09-08
    云主机
  • 可以在云服务器上开发吗
    是的,您可以在云服务器上开发您自己的应用程序。在云服务器上开发应用程序是一种非常常见的开发方法,因为它为开发人员提供了无限制的灵活性和可扩展性,并且可以使用公共云服务提供的各种工具和资源。 在开发应用程序时,您通常需要使用编程语言、开发工...
    99+
    2023-10-26
    器上
  • 在Windows系统上安装Redis
    在Windows系统上安装Redis现在互联网公司都在使用分布式缓存,或是分布式数据库, 其中我们数聚传媒也在使用Redis进行数据库读写和分布式缓存,Redis 不仅简单灵活,数据结构丰富,而且在数据库读...
    99+
    2024-04-02
  • ftps可不可以在linux系统安装
    本篇内容主要讲解“ftps可不可以在linux系统安装”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ftps可不可以在linux系统安装”吧! ...
    99+
    2023-03-01
    ftps linux
  • LinuxMint系统桌面Note可以用斜体字吗?
    Mint Linux桌面Note怎么设置使用斜体字?不用着急,很简单的,该怎么给字体添加倾斜效果呢?下面我们就来看看详细的教程。 右键点击Note。 点击配置。 下拉设置页面。 点击Italic开关。 打开开关就会使...
    99+
    2022-05-23
    LinuxMint 斜体字 桌面Note
  • Java有哪些函数可以在Unix系统上运行?
    Java是一种面向对象的编程语言,可以在各种操作系统上运行,包括Unix系统。在Unix系统上使用Java,我们需要了解Java中哪些函数可以在Unix系统上运行。本文将为您详细介绍Java在Unix系统上运行的相关函数。 System...
    99+
    2023-07-09
    unix numy 函数
  • Caffe框架可以在哪些操作系统上运行
    Caffe框架可以在以下操作系统上运行: Linux Windows macOS Caffe框架的官方支持包括Ubuntu和Wi...
    99+
    2024-03-11
    Caffe
  • 怎样可以在CentOS系统yum
    这篇文章给大家介绍怎样可以在CentOS系统yum,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。镜像技术目前有很多,包括各种软件硬件集成技术,但是这些集成的数据复制技术均有一定的限制。鉴于这些限制,现有的大部分的单一产...
    99+
    2023-06-16
  • 在CentOS系统上如何安装Docker
    本篇内容介绍了“在CentOS系统上如何安装Docker”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Docker 是一个开源工具,它可以让...
    99+
    2023-06-10
  • 云服务器可以装双系统吗
    云服务器可以安装两个系统,以实现更大的存储和计算能力。 如果您只想在一个云服务器平台上运行一个应用程序,并只使用其中一个系统即可。您不必担心两个系统不能同时使用,因为云服务器平台支持多个系统并发访问。 如果您想同时使用多个系统,那么您可能...
    99+
    2023-10-26
    双系统 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作