将脚本放在一起以快速在Docker容器内添加SQL Server Linux实例,然后立即将其连接以进行测试。好像run命令和sqlcmd不能在同一脚本中运行。
假设您在.ps1文件中运行此文件:
#create the container with sql server
docker run `
-e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Awesome1!" `
-p 11433:1433 `
--name shuriken --hostname shuriken --restart=always `
-d microsoft/mssql-server-linux:2017-latest;
#try to connect to it
$ConnectionString = "Server=localhost,11433;Database=master;User Id=sa; Password=Awesome1!";
$sql = 'SELECT @@SERVERNAME AS ServerName;';
Invoke-Sqlcmd -ConnectionString $ConnectionString -Query $sql;
您得到一个错误:
但是,如果之后您立即注释掉
docker run
命令,它将起作用。连接到同一SQL Server就好了:我已经尝试了SqlServer模块中的
Invoke-SqlCmd
,SqlCmd
,cmdlet并将它们放置在另一个我在这里称为文件中;它们都给出相同的错误。 最佳答案
在Start-Sleep -s 4;
和docker run
之间添加Invoke-SqlCmd
是可行的。
看起来只需要一些呼吸空间。
4秒是我查询之前可以走的最低时间。
关于powershell - Docker运行和sqlcmd一起错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51986818/