Docker容器中包含的所有数据库的列表

时间:2019-02-10 12:37:44

标签: .net sql-server database docker containers

我在多个容器中有多个数据库。 知道哪个容器保存哪个数据库开始引起混乱。

所以我的问题很简单,有没有办法获取Docker容器中包含的所有数据库的列表?

docker ps -a 提供所有已创建容器的列表,但是我如何知道哪个容器包含特定数据库?

必须有一个命令行来执行此操作,为我提供每个容器中包含的所有mssql数据库的列表, 到目前为止,我必须猜测哪个容器保存哪个数据库才能访问该数据库。

我将docker容器托管在Mac上。

1 个答案:

答案 0 :(得分:0)

Docker不了解其内部正在运行什么,因此您必须直接询问SQL Server。

select [name] from sys.databases where database_id > 4将列出给定实例(或您的情况下的容器)上的所有用户数据库。

连接到每个实例/容器并运行该查询。如果您使用中央管理服务器,则可以轻松得多,因为您可以一次对多个服务器执行同一查询。

如果您没有CMS,则可以通过将实例列表传递到dbatools PowerShell模块函数Invoke-DbaQuery并获得类似结果来实现。

Invoke-DbaQuery -serverinstance InstanceOne,InstanceTwo -query "select [name],@@SERVERNAME from sys.databases where database_id > 4;";

另一个选择(再次使用dbatools)是使用Get-DbaDatabase。这将返回有关名称的更多信息。

Get-DbaDatabase -serverinstance InstanceOne,InstanceTwo