#sql-server #windows #docker
#sql-сервер #Windows #docker
Вопрос:
Я получил образ docker для SQL Server Developer edition и запустил его:
PS C:WINDOWSsystem32> docker ps -aa
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
81347866fc2b microsoft/mssql-server-windows-developer "powershell -Command…" About an hour ago Up About an hour (healthy) 0.0.0.0:1433->3341/tcp trusting_mccarthy
PS C:WINDOWSsystem32>
Как вы можете видеть, он прослушивает порт 3341. IP-адрес равен:
PS C:WINDOWSsystem32> docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 8
172.17.234.173
Однако я не могу подключиться к нему с хоста:
PS C:WINDOWSsystem32> sqlcmd -S 172.17.234.173,3341
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : TCP Provider: An attempt was made to access a socket in a way forbidden by its access permissions.
.
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : Login timeout expired.
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online..
Должно быть, что-то не так. есть какие-нибудь подсказки?
PS: Я также не могу подключиться к 1433:
PS P:> sqlcmd -S 172.17.234.173,1433
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : TCP Provider: An attempt was made to access a socket in a way forbidden by its access permissions.
.
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : Login timeout expired.
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online..
PS P:>
Используемая команда Docker Run:
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong!Passw0rd>" `
-p 1433:1433 --name sql1 `
-d mcr.microsoft.com/mssql-server-windows-developer
обратите внимание, что я также начал с 1433: 3341. Никакой радости в любом случае
Комментарии:
1. При условии, что информация о порту верна, вы выглядите так, как будто вы переключили порт между стороной docker и стороной хоста. Ie: вы должны использовать sqlcmd -S 172.17.234.173,1433 (это «опубликованный порт -> открытый порт контейнера»)
2. Я так и думал, но это также не удается (опубликовано обновление)
3. И вы уверены, что sqlserver равен 3441? Документация ( hub.docker.com/r/microsoft/mssql-server-windows-developer ) говорит, что это 1433 … таким образом, вы бы опубликовали 1433: 1433 при запуске вашего образа. Вы что-то изменили внутри conf?
4. Я изменил это (см. Выше), чтобы привести в соответствие с нашей обычной практикой. однако использование порта по умолчанию 1433 вызывает у меня ту же проблему.
5. Можете ли вы добавить свою команду «docker run» (или любую другую команду), которую вы используете?