是否有可能在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。
- 如何在Travis中获得完整的MySQL数据库
- Docker – 复制mssql数据库
- 将docker容器中的Connectionstring连接到主机中的SQL Server dblocal
- “价值不能为空。 参数名称:userName“在Docker中安装MSSQL 2014 Express时出错
- 从Docker容器中连接到SQL Server Express会导致评估密码时发生错误
- 将SQL Server的Linux ODBC驱动程序添加到Kaggle / Python泊坞窗图像
- 为什么连接到Google Cloud SQL在Docker容器内失败,但在Docker容器外部成功?
- SQLexception只发生在三台服务器中的一台上
- 作为卷映射使用NFS装载的SQL Server docker容器