开发者社区> docker公司> 正文

在 Windows 内核上运行 Docker 靠谱吗?专家六问六答帮你解惑!

简介: 上周三,我们为大家带来了新一期的网络研讨会。现场我们从观众那里得到了一些非常棒的问题,但是由于时间有限我们并没有在会上一一回答所有的问题。今天我将在这里为大家总结6个具有代表性的问题,供大家学习参考。
+关注继续查看

screenshot

本文首发自“Docker公司”公众号(ID:docker-cn)
编译丨小东
每周一、三、五 与您不见不散!


上周三,我们为大家带来了新一期的网络研讨会——不改代码!看 Docker 如何将15年前的应用迁移到容器运行。现场我们从观众那里得到了一些非常棒的问题,但是由于时间有限我们并没有在会上一一回答所有的问题。今天我将在这里为大家总结6个具有代表性的问题,供大家学习参考。


问:当我们在 Windows 上运行 Docker 时,它是真正的容器化吗?还是说它只是通过 API 进行通信?

答:它是真正的容器化!早在2016年9月,Docker 就与 Microsoft 合作发布了 Windows Server 2016 版本,从那时起 Windows 内核就已经支持容器了。当您运行一个 IIS 网站的 Docker Windows 容器时,您可以看到在主机 Windows 服务器上运行的 w3wp.exe 工作进程,它是一个进程级隔离。


问:我们可以从 Docker Windows 容器的 Azure 存储中进行读取/写入吗?

答:当然可以!Docker 是一种运行应用程序的新方法,在 Docker 容器中,应用程序的内容是相同的。运行在 Docker 企业版中的 Docker Windows 容器拥有与主机服务器相同的网络访问权限,因此您可以从云 VM 或数据中心处访问 Azure 存储。


问:我如何知道要使用哪个 Microsoft 的基础服务器和功能(服务器核心与Nano、ASP 和 dotnet等)?我需要详细了解我的应用程序吗?有没有什么简单的方法可以让我的 Windows 应用程序识别出这一点?

答:第一种策略是在 Windows Server Core 之间,它几乎是 Windows Server 2016 体验减去UI和Nano服务器,但它仅支持64位应用程序和某些应用程序的运行时。

如果您知道应用程序使用的运行时,那么您可以使用构建在 .NET Framework 或 .NET Core 其中一个上的 Microsoft 镜像。否则,您还可以编写一个 Dockerfile 文件来复制当前的部署过程。您还可以点击文尾处“阅读原文”查看关于如何将 Windows 应用进行容器化改造的更多详情。


问:假设我想部署一台人们可以在 RDP 中运行 Excel 的虚拟机,这是否可以与 Windows Server Core 一起使用呢?

答:不可以!Windows Server Core 镜像中没有 Windows UI。Docker 用于运行没有图形 UI 的服务器应用程序 —— Web服务器、REST API、数据库和控制台应用程序。Microsoft 最近发布了一款支持 GU I应用的新的 Windows Docker 镜像,但目前尚不清楚它是否会支持 RDP。


问:您能谈谈关于 WinForm 和 WPF 应用程序吗?

答:它们现在不适合Docker容器,因为容器目前不支持 Windows GUI 子系统。您可以使用 Docker 构建和分发这些应用程序,但无法在容器中运行 Window s客户端应用程序。


**问:请详细说明如何将旧式配置(XML)更改为新的环境变量?我们应该更改旧的应用程序吗?或者编写一个从 Env 变量构造 XML 的中间应用程序?
**
答:最好的选择是坚持使用 .NET 配置模型并使用 XML 文件,这样您就不必更改应用程序。您可以在 Docker 镜像中打包默认配置文件以进行开发,这样开发人员就可以通过运行没有额外设置的容器来运行应用程序。然后,您可以将 XML 文件保存为集群中的 Docker 配置对象,并在其运行时将它应用于容器。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
27732 0
C++windows内核编程笔记day13 进程、线程与信号量
Windows进程 进程是一个容器,包含程序执行需要的代码、数据、资源等信息, windows进程的特点:每个进程都有自己的ID号每个进程都有自己的地址空间,进程之间无法访问对方的地址空间。
832 0
结合AliOS Things谈嵌入式系统通用问题定位方法(2):内核相关基础
内核提供的任务创建接口,会存在参数指定当前任务创建完立即运行还是需要显示调用start运行,需要注意。如果在创建任务时指定了立即执行,而在创建任务后去设置任务参数,可能是不生效的。(尤其posix的pthread接口经常遇到这种问题)
123 0
Windows 内核Hook之IOAPIC编程
Windows 内核Hook之IOAPIC编程 HOOK系列中,包括应用程序HOOK编程、IDT和IOAPIC编程,其中IOPIC顾名思义I/O ADVANCED PROGRAMMABLE INTERRUPT CONTROLLER中断控制器。
875 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
19980 0
Docker技术剖析:Docker背后的内核知识
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhaobryant/article/details/79599432 Docker本质上是运行在宿主机上的进程,它通过namespace实现了资源隔离,并通过cgroups实现了资源限制,同时通过写时复制(copy-on-write)实现了高效的文件操作。
1786 0
+关注
130
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载