Как подключиться к SQL Server, размещенному на Docker в Azure Ubuntu VM

#azure #docker #ubuntu #azure-virtual-machine

#azure #docker #ubuntu #azure-виртуальная машина

Вопрос:

Я установил SQL Server 2019 docker на виртуальной машине Azure Ubuntu. Контейнер запущен. Однако я не могу подключиться к нему с помощью SSMS извне виртуальной машины. При запуске контейнера я использовал порт 1450 для сопоставления с 1433. Кроме того, я настроил NSG для разрешения трафика. Тем не менее, мне не повезло.

введите описание изображения здесь

введите описание изображения здесь

iptables -L введите описание изображения здесь

NSG введите описание изображения здесь

Спасибо

Ответ №1:

Чтобы запустить SQL Server через Docker на Ubuntu, вы можете выполнить следующие действия:

  1. Перенесите образ docker на ваш хост Ubuntu:

    docker pull mcr.microsoft.com/mssql/server:2019-CTP2.2-ubuntu

  2. запустите образ с помощью команды docker:

    docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=azureUser@2018' -p 1450:1433 -d --name mssql mcr.microsoft.com/mssql/server:2019-CTP2.2-ubuntu

  3. проверьте контейнер, работает ли он нормально, вы делаете это с помощью команды docker:

    sudo docker exec -it mssql /opt/mssql-tools/bin/sqlcmd
    -S localhost -U SA -P '<YourStrong!Passw0rd>'

  4. откройте порт 1450 в NSG, связанном с вашей виртуальной машиной

  5. подключите SQL Server через SSMS следующим образом: введите описание изображения здесь

Примечание: Если вы открываете брандмауэр на виртуальной машине Ubuntu, вам также необходимо открыть порт в брандмауэре.

Информацию об образе Docker можно найти в Microsoft SQL Server и более подробную информацию о запуске и подключении образа SQL Server к Docker.

Обновить:

Когда вы проверите правила NSG, я предлагаю вам зайти в сеть виртуальной машины, там будут показаны все NSG, связанные с подсетью и сетевой картой. Если разрешить порт, вы должны добавить правило в оба NSG или изменить NSG как одно и то же, тогда вы можете просто добавить правило только в один NSG. Проверьте правило NSG, как показано ниже:

введите описание изображения здесь

Комментарии:

1. Спасибо. Это то, что именно я сделал. Я могу подключить SQL Server локально из Ubuntu. Однако не с внешней виртуальной машины

2. @user1716729 Добавляете ли вы правило NSG, чтобы разрешить порт 1450 с виртуальной машиной? Я могу подключить его снаружи.

3. @user1716729 Хорошо, когда вы вводите имя сервера в SSMS, между IP-адресом и портом стоит запятая, не так ли?

4. @user1716729 Возможно, вы можете изменить источник, указав значение любого из правил NSG для порта 1450. Кроме того, вы можете проверить, существуют ли на компьютере правила, блокирующие трафик.

5. @user1716729 Есть еще обновления для того, что вы сделали для запуска SQL Server в Docker на виртуальной машине?