是否有可能在Docker中运行MSSQL-Linux?

我的部分工作涉及数据收集,以帮助调整可能转移到云端的工作负载。 其中的一个要素就是能够在客户端环境中枚举SQL实例,以获得诸如“嘿,你有一些支持遗留SQL的东西,这在很多年前应该被分解,这是怎么回事”。

随着SQL Server 2017的发布,我刚才在Linux容器(使用这个镜像 )上创build了一个SQL Server Enterprise 2017的实例,我在Windows 10本地运行。我可以通过SSMS连接到实例并select@@ VERSION确认它是合法的,但是我的问题是如果可以清点设备并在不知道连接string的情况下findSQL实例。

我试过的东西:

在Windows 10上运行,所以我相信这是通过Hyper-V支持的,当我尝试通过Hyper-Vpipe理器连接到VM ​​Docker时,无法获得任何接口(我认为,自从Docker模拟应用程序而不是完整的虚拟机)

– 尝试从Win10主机设备上执行sqlcmd -L,但没有看到实例(在我运行的Windows 10设备上没有安装SQL)

– 我可以通过docker psfinddocker镜像,然后exec -bash,然后从那里使用sqlcmd,但是sqlcmd -L在Linux中没有被列为选项。

从主机设备-ipconfig显示Docker的IP地址,但它不会给我的端口信息,所以我将不得不扫描所有的端口感觉脏。

在这一点上,我有点茫然。 如果我没有明确知道Docker容器正在运行MSSQL-Linux,那么有什么办法可以从盘点主机设备中识别出来吗? (抱歉,很长的职位)

在敲了一下我的头之后,我发现了一个痛苦的解决方法:

连接到容器的bash使用: docker exec -it <container_name> "bash"然后使用ps aux | grep sql ps aux | grep sql列出所有的sql进程。 MS映像从本地testing显示为/ opt / mssql / bin / sqlservr。 一旦确定了SQL,可以尝试使用来自ipconfig的Docker ip和docker ps的端口连接到它

这不是很好,但应该可以自动化这些步骤,以便在一组未知设备上使用。

留下这个开放一点点的任何更好的select。