Список всех баз данных, содержащихся в контейнере Docker - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть несколько баз данных в нескольких контейнерах.Начинает сбиваться с толку информация о том, какие контейнеры содержат какую базу данных.

Так что мой вопрос очень прост, есть ли способ получить список всех баз данных, содержащихся в контейнере Docker?

docker ps -a дает список всех созданных контейнеров, но как мне узнать, какой контейнер содержит конкретную базу данных?

Должна быть командная строка, которая будет делать именно это, дать мне список всех моихБазы данных mssql, содержащиеся в каждом контейнере, на данный момент я должен угадать, какой контейнер содержит какую базу данных для доступа к базе данных.

Я размещаю док-контейнеры на Mac.

1 Ответ

0 голосов
/ 10 февраля 2019

Docker не знает, что внутри него работает, поэтому вам нужно напрямую обратиться к SQL Server.

select [name] from sys.databases where database_id > 4 выведет список всех пользовательских баз данных для данного экземпляра (или, в вашем случае, контейнера).

Подключитесь к каждому экземпляру / контейнеру и выполните этот запрос.Если вы используете Central Management Server, это намного проще, так как вы можете выполнить один и тот же запрос для нескольких серверов одновременно.

Если у вас нет 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...