当前位置: 首页 > 面试题库 >

docker是使应用程序跨平台的解决方案吗?

耿锦
2023-03-14
问题内容

我通过阅读一些博客和介绍材料开始使用docker。

我的理解是docker可以将单个应用程序包装到标准化容器中。容器提供了一个沙箱,应用程序需要运行的所有必需资源,并且内部的应用程序始终位于该容器中。这意味着我可以将容器运送到任何地方(不同类型的OS甚至是云平台),并且仍然可以正确运行。

如果我的理解是正确的,那是否意味着微软可以将其办公服包装到一个容器中,并且可以在mac
os或linux上安装并运行它?还有一些其他不错的Mac应用程序也可以交付到Windows和Linux吗?


问题答案:

Docker是LXC之上的一个用户友好层,LXC是一组Linux内核功能,允许对文件系统配置,网络资源,进程表以及其他历史上是全局的内核介导的资源进行命名间隔。(与kvm或VMware相比,它更接近FreeBSD监狱)。

这些功能非常特定于Linux,并且在Docker容器中运行的应用程序仍直接与主机的Linux内核接口(尽管它只能访问暴露给它所参与的名称空间的资源子集)。同样,操作码可直接在硬件上运行,而无需模拟虚拟化,因此也不会抽象出硬件差异

因此,Docker 并不是
跨OS(或跨体系结构)的可移植性层,它不会成功地将依赖于特定内核版本的应用程序的实现细节隐藏起来,而完全取决于完全不同的操作系统。

2017年初更新

Docker现在通过捆绑类似于Linux上的kvm的轻量级虚拟化堆栈,在Mac上运行。当运行这种方式,实际上做 虚拟化和集装箱化-
前者运行(单)Linux内核,后者以这个内核中运行的一系列单独的容器中。

这仍然意味着它仅限于运行本机Linux应用程序,并且仍然没有为桌面应用程序提供显示层(X11,VNC或其他需要使用的其他东西)。但是,通过捆绑虚拟化工具,现代Docker现在
成为一种可移植性解决方案(跨平台,而非体系结构)。



 类似资料:
  • ASP 应用程序可在运行 Windows NT 4.0 或 Windows 95 及其更新版本的操作系统的计算机上运行。另外,可在 Macintosh 上运行 streamline 版本的 ASP。因为在 Windows 95 和 Macintosh 上的 Personal Web Server 是为个人发布设计的,所以在对 ASP 应用的支持方面有些不同。您可以在 Windows NT Work

  • 问题内容: py2exe很棒,每当我想打包一个要在Windows系统上运行的python程序时,我都会使用py2exe。 我的问题是,是否可以使用等效工具在Windows上打包程序,但是可以在Linux上运行? 问题答案: 好的,我已经做到了。这有点hacky,但是对于我的用例来说效果很好。 要点是使用ModuleFinder查找所有导入的模块,过滤掉所有系统模块,编译并压缩它们。 不幸的是,我的

  • 本文向大家介绍解决Android平台中应用程序OOM异常的方法,包括了解决Android平台中应用程序OOM异常的方法的使用技巧和注意事项,需要的朋友参考一下 在Android平台上面,应用程序OOM异常永远都是值得关注的问题。通常这一块也是程序这中的重点之一。这下我就如何解决OOM作一点简单的介绍。 首先,OOM就是内存溢出,即Out Of Memory。也就是说内存占有量超过了VM所分配的最大

  • 主要内容:1.@CrossOrigin,2.网关整合,3.Httpclient因为浏览器的同源政策,就会产生跨域。比如说发送的异步请求是不同的两个源,就比如是不同的的两个端口或者不同的两个协议或者不同的域名。由于浏览器为了安全考虑,就会产生一个同源政策,不是同一个地方出来的是不允许进行交互的。 1.@CrossOrigin 在控制层加入允许跨域的注解,即可完成一个项目中前后端口跨域的问题 2.网关整合 作为Spring Cloud生态系统中的网关,目标是替代,其 不仅提供统

  • 主要内容:1.@CrossOrigin,2.网关整合,3.Httpclient因为浏览器的同源政策,就会产生跨域。比如说发送的异步请求是不同的两个源,就比如是不同的的两个端口或者不同的两个协议或者不同的域名。由于浏览器为了安全考虑,就会产生一个同源政策,不是同一个地方出来的是不允许进行交互的。 1.@CrossOrigin 在控制层加入允许跨域的注解,即可完成一个项目中前后端口跨域的问题 2.网关整合 作为Spring Cloud生态系统中的网关,目标是替代,其 不仅提供统

  • 我似乎无法从javaFX应用程序中生成跨平台构建。 在实际的FX应用程序之前,还有一个启动器,这是清单所指向的地方。这就是pom的样子。 我还注意到,无论我选择什么概要文件,它总是生成linux版本,我可以看到这个maven日志: 我一直在看其他的帖子和查看一些视频,这似乎也发生在其他人身上,但看起来有点奇怪。同样奇怪的是,当我为windows生成时,在生成的JAR中看不到任何.dll文件。 正如