2

私がやった事:

  • Windows 10 Anniversary Update に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 つのコンテナーの違いは何ですか?

4

2 に答える 2

0

SQL Server をインストールするには、次を実行します。

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

構成ファイル:

[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
于 2016-10-20T12:13:07.747 に答える
0

Microsoft は、SQL Server 2016 Express がインストールされた Docker Hub に独自のイメージを持っています: microsoft/mssql-server-2016-express-windows。それを直接使用することも、開始する独自の Dockerfile で拡張することもできます。

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

独自にビルドしたい場合は、Microsoft がDockerfileからどのようにそれを行っているかを確認できます。指示で PowerShell スクリプトを確認すると、次のCMDように SQL Express が起動します。

start-service MSSQL`$SQLEXPRESS

を使用して変更したイメージを保存する場合、イメージから新しいコンテナーを実行するときに Docker が使用する をdocker commit変更していないため、 Dockerfile からイメージをビルドすることをお勧めします。CMD

コンテナ B でサービスを開始できない理由については、SQL をインストールするために行った手順と、コンテナの実行時に使用したオプションによって異なります。

于 2016-10-20T10:17:53.693 に答える