如何在远程 Windows 引擎上 运行 Docker 命令

How to run Docker commands on remote Windows engine

我正在努力将 Docker 集成到我们的 TeamCity 构建过程中,以便我可以创建一个 运行 是 "docker build" 的任务,以从我们的代码创建图像。现在,我们所有的构建代理 运行 在 Windows Server 2008 或 Windows Server 2012 上,两者都不能 运行 Docker。我们有机会获得一台 Windows Server 2016 构建机器的许可证,但我想知道是否有办法 运行 Docker Engine on that 机器,同时从其他构建代理发出 docker 命令。

以下是我到目前为止的考虑:

还有什么我遗漏的吗,或者我只是运气不好,除非我们将所有构建代理升级到 Windows 10 或 Windows Server 2016?

您可以开始使用来自其他构建代理的远程 Windows Server 2016 实例。

Docker 允许通过 tcp 公开 Docker 引擎(又名守护进程)。在这种情况下,尤其是当主机可公开访问时,您应该考虑使用 client/server 证书配置身份验证。可以在 https://docs.docker.com/engine/security/https/, but you may find the Windows Server specific article at https://stefanscherer.github.io/protecting-a-windows-2016-docker-engine-with-tls/ 更有帮助的官方文档中找到详细信息。

关于您使用客户端连接到远程 Docker 引擎的方面,请使用 -H tls://<host>:<port> 参数,如 https://docs.docker.com/engine/reference/commandline/cli/ (or see the example provided at https://stefanscherer.github.io/protecting-a-windows-2016-docker-engine-with-tls/#testtlsconnection 中所述)。