将脚本放在一起以快速在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-SqlCmdSqlCmd,cmdlet并将它们放置在另一个我在这里称为文件中;它们都给出相同的错误。

最佳答案

Start-Sleep -s 4;docker run之间添加Invoke-SqlCmd是可行的。
看起来只需要一些呼吸空间。
4秒是我查询之前可以走的最低时间。

关于powershell - Docker运行和sqlcmd一起错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51986818/

10-16 16:51