Я использую Docker на Windows, и у меня есть Docker контейнер с SQL Сервер работает. Чтобы запустить мой контейнер, я использовал показанную здесь информацию :
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=yourStrong(!)Password" -p 1433:1433 -d mcr.microsoft.com/mssql/server:2017-CU8-ubuntu
(Обратите внимание, что вместо одинарных кавычек ('
) я использую двойные кавычки ("
) поскольку я работаю на Windows.)
Мой контейнер работает, и я могу подключиться к нему и выполнить запрос, используя sqlcmd
:
docker exec -it <container_id|container_name> /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P <your_password>
(обратите внимание, я указываю идентификатор контейнера, найденный с помощью docker container ls
, и пароль, используемый при запуске контейнера, yourStrong(!)Password
.)
1> USE master
2> GO
Changed database context to 'master'.
1> SELECT name, database_id, create_date FROM sys.databases;
2> GO
name database_id create_date
----------------------------------------
master 1 2003-04-08 09:13:36.390
tempdb 2 2020-04-06 12:00:33.493
model 3 2003-04-08 09:13:36.390
msdb 4 2018-06-13 18:27:29.220
Однако я хочу использовать VS Code для подключения к моему SQL экземпляру сервера, поэтому после установки сервера SQL SQL (ms sql) я попытался установить соединение, но установить соединение не удалось.
Имя сервера
В качестве имени сервера я использую IP-адрес для контейнера, что составляет 172.17.0.2
. Это получается с использованием ответа , показанного здесь .
Имя базы данных
Для имени базы данных я использую master
.
Имя пользователя
Для имени пользователя Я использую SA
(обратите внимание, что я пробовал использовать как верхний, так и нижний регистр).
Пароль
Я использую тот же пароль, указанный при запуске контейнера, yourStrong(!)Password
Последние два шага - «Сохранить пароль», для которого я выбираю «Да», и назовите соединение, для которого я попытался указать имя, и попытался опустить его.
Соединение каждый раз прерывается, и я не уверен, в чем проблема. Учетные данные определенно правильные (если они не каким-то образом преобразованы при добавлении в запросы в VS Code, что маловероятно), правильное имя сервера (IP) и база данных существует.
Кто-нибудь знает, в чем может быть проблема, или как я могу устранить эту проблему дальше?
Я знаю, что должно работать, так как я успешно сделал то же самое на Linux. Я предполагаю, что это как-то связано с Docker, работающим на Windows, но не могу быть уверен.
Любая помощь приветствуется!
Редактировать
Информация об ошибке при попытке подключения: