Windows Docker 容器上的服务安装

Windows Service installation on Docker Container

我正在尝试将我们的一个基于 Tomcat 的 Windows 应用程序移植到 Windows Nano Server Container。安装过程包括两个 Windows 服务安装 - 一个 ActiveMQ 服务和另一个 Tomcat 服务。这是使用产品随附的两个批处理文件实现的。除了安装服务之外,它们还传递了几个与 JVM 有关的参数。现在我面临的问题是我无法在 Nano Server 上安装这些服务。相同的 Dockerfile 工作完美,并将产品安装在 Windows Server Core Container 上。

观察:通过批处理文件安装的服务依赖于两个系统组件-Winsock辅助功能驱动程序(服务名称:afd)和TCP/IP协议驱动程序(服务名称:tcpip)。这是我在检查服务属性时在安装产品的 VM 上发现的。我看到它们不存在于 Nano Server 容器中,但存在于 Windows Server Core 容器中。这可能是一个原因吗?如果是,是否有任何方法可以在 Nano Server 上获得这些服务 运行?

我不知道如何解决这个问题。 Nano Server Container 在 Windows 服务方面有任何限制吗?

考虑从头开始构建您的 docker 容器,

  • 确定并设置您的先决条件
  • 首先安装所有依赖项
  • 安装有问题的应用程序和服务

(有关其他信息,您可以查看 this wiki 页面。)

Nano 服务器容器是最小的并且缺少许多 windows 默认服务,您必须自己通过 Dockerfile 构建其中的大部分。

最简单的方法是在 Nano 服务器上手动执行此操作并确认在 docker container/image 中一切正常,然后生成自动构建。