在 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 配置对象,并在其运行时将它应用于容器。

相关文章
|
1月前
|
前端开发 关系型数据库 MySQL
IDEA集成Docker插件打包服务镜像与运行【附Docker命令汇总】
IDEA集成Docker插件打包服务镜像与运行【附Docker命令汇总】
|
1月前
|
Oracle 关系型数据库 数据库
|
1月前
|
Java Shell Docker
Docker启动后怎样运行jar包文件
Docker启动后怎样运行jar包文件
|
16天前
|
人工智能 机器人 编译器
【C++】Windows端VS code中运行CMake工程(手把手教学)
【C++】Windows端VS code中运行CMake工程(手把手教学)
|
18天前
|
Linux Docker 容器
Linux彻底卸载Docker包括运行拉取的镜像
Linux彻底卸载Docker包括运行拉取的镜像
22 1
|
25天前
|
Java 关系型数据库 数据库
Seata常见问题之docker运行报错如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
98 0
|
26天前
|
Nacos 数据库 Docker
nacos常见问题之docker部署的seata,成功注册到nacos运行报错如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
36 2
|
1月前
|
JavaScript Shell Docker
|
1月前
|
Java 关系型数据库 数据库
在Windows上运行Flink
【2月更文挑战第16天】在Windows上运行Flink
60 2
|
1月前
|
前端开发 Java 网络安全
解决docker中运行的jar包连不上前端程序
解决docker中运行的jar包连不上前端程序