我们是一家初创公司,我们仍在积极招募志同道合的人,但我们的产品即将试行。我们的软件由以下模块组成:
- API - ASP.NET Core Web API 2 项目
- MySQL
- Web 客户端是 Angular 5 上的应用程序。我们没有跨 ASP.NET Core 和 Angular,但我们使用 Node.js 单独开发 Angular Web 客户端。
任务是组织一个策略,以便在客户的基础设施上轻松部署所有三个节点,当然要考虑到将编写安装教程以及客户的技术服务将参与安装的事实。
将在客户端服务器上运行的操作系统是未知的,我想制作一个适用于 Windows 和 Linux 的通用安装过程。很明显,您必须为多功能性付费。
正如我在上面所写的,我们只是一个发展中的小队,我们仍然没有一个优秀的管理员专家,在解决军火库中的此类部署任务方面拥有丰富的经验。
码头工人。码头工人,码头工人和更多码头工人。自然,首先,程序员会想到这个软件的任务之一(我说过其中之一),即使程序员免于部署问题并让他尽可能地专注于编码。哦,要是这样就好了。
代理服务器。不管怎么说,Apache、IIS、nginx 等服务器之一是 Kestrel/HTTP.sys 的优势。据我了解,仍然需要。即使客户计划仅在公司网络内使用我们的产品。当然,使用 HTTP.sys 会更好:它不像 Kestrel 那样赤裸裸,但我们正在谈论通用性,并且 HTTP.sys 仅适用于 Windows。例如,我尝试在Windows Server上安装nginx作为实验:我的妈妈是亲爱的,从外面看起来我是第一次看到一台电脑)。
如果可以的话,我想问两个问题:
1)第一个问题比较笼统,你可能猜到了:你推荐什么?
2)现在,具体来说:我目前正在使用 Windows 10,如果我决定使用 Docker,那么我正确理解我需要创建四个容器
- 代理容器(Apache、nginx 或 IIS)
- 带有 MySQL DBMS 的容器
- 带有 Angular 应用程序的容器
- 带有 ASP.NET Core 2 Web API 项目的容器
这可以直接从 Windows 完成吗?也就是说,在 Windows 机器上创建的容器可以在 Linux 上运行吗?
Windows 下的 Docker 可以在两种模式下运行——Windows Containers 和 Linux Containers。模式通过托盘图标切换:
在 Windows 容器模式下,它直接在当前操作系统中构建和托管容器。在这种模式下构建的容器不能放在 Linux 下。
在 Linux 容器模式下,它实际上在 Linux 虚拟机上构建和运行容器——它在 Hyper-V 管理器中可见。在这种模式下构建的容器可以放在 Linux 下。
每个运行时都有自己的一组标签 - 所有可用的标签都可以在https://hub.docker.com/r/microsoft/aspnetcore/查看
那些。是的,你可以开启 Linux Containers 模式,构建一组 4 个容器(以 nginx 为代理),然后在 Linux 下全部运行。