将Windows容器(使用Docker创build)部署到Azure容器服务中

我正在尝试完成关于如何在Azure域/环境中正确使用Windows Containers的体系结构研究,其中我必须容纳DotNet核心Web API应用程序并将该容器部署到Azure容器服务

这是我做的事情

  1. 我在Azure门户中创build了Azure容器服务帐户/域/虚拟机

  2. 另外,我还为已经安装了Docker的Containers创build了另一个Windows Server 2016虚拟机

  3. 在Windows服务器2016上,我创build了一个简单的.NET Core Web API应用程序,并使用Docker为该应用程序创build了一个映像

  4. 我确实将Web API应用程序的映像推送到Docker集线器中,并使用SSH隧道接口尝试将映像下载到Azure容器服务中,因此可以从该服务运行

但是,我会收到一条消息,指出Windows容器无法在Linux上运行,因为默认情况下,Azure容器服务是Linux系统

有没有办法将Windows Docker容器部署到Azure容器服务中? 我应该在Windows中创buildAzure容器服务吗? 湾 我应该使用另一个Orchestrator(而不是Docker)将Windows容器部署到Azure容器服务中吗? C。 我应该走另一条路吗?

提前非常感谢您的支持!

Windows Containers无法在Linux上运行,因为默认情况下,Azure容器服务是Linux系统。

我们知道,关于Linux和windows的容器是不同的,所以我们不能在Linux系统上运行windows容器。

作为解决方法,我们可以使用windows代理创buildAzure容器服务(selectkubernetes),以便我们可以将windows容器部署到kubernetes windows代理。

我们可以通过Azure门户部署Azure容器服务,selectorchestrator到kubernetes,在代理configuration中,我们应该selectwindows操作系统。 这样,kubernetes的主人是Linux,代理人是windows。

我们可以使用kubectlkubectl文件来创buildwindows容器。 例如,我们可以在Windows代理上部署IIS容器。 Kubernetes是一个用于pipe理容器的工具,所以我们可以使用k8s将IIS部署到windows节点。

1. iis.json文件,如下所示:

 { "apiVersion": "v1", "kind": "Pod", "metadata": { "name": "iis", "labels": { "name": "iis" } }, "spec": { "containers": [ { "name": "iis", "image": "nanoserver/iis", "ports": [ { "containerPort": 80 } ] } ], "nodeSelector": { "beta.kubernetes.io/os": "windows" } } } 

2.使用kubctl apply命令创build豆荚,如下所示:

 kubectl apply -f iis.json 

有关如何使用k8s部署Windows IIS容器的更多信息,请参阅此链接 。

如果要使用容器映像,则可以将映像上载到Azure容器registry ,然后从registry中提取映像。

如何为Azure容器registry设置秘密并拉取图片,请参考此答案 。