SQL Server Express无法启动运行docker容器(Windows)

时间:2016-10-20 10:03:42

标签: docker sql-server-express docker-for-windows docker-desktop server-core

我做了什么:

  • 我在Windows 10周年纪念日安装了 Docker Desktop for Windows 更新
  • 我拉了一张图片microsoft / windowsservercore
  • 我在此图片的正在运行的容器A上安装了 SQL Server Express 2016
  • 我退出了容器A
  • 我将容器A提交给新图像sqlimage
  • 我使用新的sqlimage
  • 运行一个新的容器B.

我的问题:
在容器A上,SQL Server正常工作 在容器B上无法启动SQL Server 当我尝试使用net start" SQL Server(INST)"我收到以下错误:
发生服务特定错误:5。

这两个容器之间有什么区别?

2 个答案:

答案 0 :(得分:0)

Microsoft在安装了SQL Server 2016 Express的Docker Hub上有自己的映像:microsoft/mssql-server-2016-express-windows。您可以直接使用它,或使用您自己的Dockerfile扩展它:

FROM microsoft/mssql-server-2016-express-windows

如果您更愿意自己构建,可以看看Microsoft如何通过Dockerfile执行此操作 - 如果您在CMD指令中检查PowerShell脚本,它会启动SQL Express,如下所示:

start-service MSSQL`$SQLEXPRESS

当您使用docker commit保存更改的图片时,您不会更改Docker在从图片运行新容器时使用的CMD,因此您最好.bind(this) this.canvas.on({ 'object:selected': this._onObjectSelected.bind(this), 'selection:cleared': this._onSelectionCleared.bind(this) }); 3}}

至于为什么服务无法在容器B中启动 - 这取决于您安装SQL所采取的步骤,以及运行容器时使用的选项。

答案 1 :(得分:0)

安装运行的SQL Server:

SETUP.exe /ConfigurationFile=ConfigurationFile.ini  /SAPWD="XXXXXXX" /IACCEPTSQLSERVERLICENSETERMS

的ConfigurationFile:

[OPTIONS]
ACTION="Install"
ROLE="AllFeatures_WithDefaults"
ENU="True"
Setup will not display any user interface. 
QUIET="True"
QUIETSIMPLE="False"
UpdateEnabled="True"
ERRORREPORTING="False"
USEMICROSOFTUPDATE="True"
FEATURES=SQLENGINE,REPLICATION,SNAC_SDK
UpdateSource="MU"
HELP="False"
INDICATEPROGRESS="True"
X86="False"
INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server"
INSTANCENAME="XAM"
SQMREPORTING="False"
INSTANCEID="XAM"
INSTANCEDIR="C:\Program Files\Microsoft SQL Server"
AGTSVCACCOUNT="NT-AUTORITÄT\NETZWERKDIENST"
AGTSVCSTARTUPTYPE="Disabled"
COMMFABRICPORT="0"
COMMFABRICNETWORKLEVEL="0"
COMMFABRICENCRYPTION="0"
MATRIXCMBRICKCOMMPORT="0"
SQLSVCSTARTUPTYPE="Automatic"
FILESTREAMLEVEL="0"
ENABLERANU="True"
SQLCOLLATION="Latin1_General_CI_AS"
SQLSVCACCOUNT="NT Service\MSSQL$XAM"
SQLSYSADMINACCOUNTS="BUILTIN\ADMINISTRATORS"
SECURITYMODE="SQL"
INSTALLSQLDATADIR="C:\SQLData"
ADDCURRENTUSERASSQLADMIN="True"
TCPENABLED="1"
NPENABLED="0"
BROWSERSVCSTARTUPTYPE="Automatic"

我用

运行容器
docker run -i --net=mytransparentnw --name B sqlimage