2016-05-17 3 views
1

Ich habe Kenntnis von verschiedenen Dockerfiles für SQL Server-Unterstützung genommen, zuletzt: https://blogs.msdn.microsoft.com/sqlserverstorageengine/2016/03/21/sql-server-in-windows-containers/Windows Server 2016 Docker Bildunterstützung für SQL Server?

Und habe ich die SQL Server Bildunterstützung von WinDocks auf Windows Server 2012, aber ich habe nicht gesehen, ob Microsoft bereitgestellt gesehen hat kündigte Pläne zur Unterstützung von SQL Server 2016 mit Docker Image-Unterstützung auf Windows Server 2016 an? Und wenn ja, hat jemand gehört, wenn MS plant, Unterstützung in die Dockerfile-Unterstützung für das Hinzufügen oder Bereitstellen von Datenbanken in Containern aufzunehmen? Danke im Voraus!

Antwort

1

UPDATE: Das SQL Server-Team unterhält nun ein 2014 Express Bild auf Docker Hub: https://hub.docker.com/r/microsoft/mssql-server-2014-express-windows/

SQL Server 2016 wird derzeit ein wenig schwieriger zu installieren, aber 2014 funktioniert gut. Hier ist meine (etwas hacky) Dockerfile:

FROM microsoft/dotnet35 

ENV SQL_EXPRESS_DOWNLOAD_URL "https://download.microsoft.com/download/1/5/6/156992E6-F7C7-4E55-833D-249BD2348138/ENU/x64/SQLEXPR_x64_ENU.exe" 
ENV SQL_SERVER_SA_PASSWORD "Password1" 

WORKDIR/

RUN powershell -Command (New-Object System.Net.WebClient).DownloadFile('%SQL_EXPRESS_DOWNLOAD_URL%', 'sqlexpress.exe') 
RUN /sqlexpress.exe /qs /x:setup && /setup/setup.exe /q /ACTION=Install /INSTANCENAME=SQLEXPRESS /FEATURES=SQLEngine /UPDATEENABLED=0 /SECURITYMODE=SQL /SAPWD=%SQL_SERVER_SA_PASSWORD% /SQLSVCACCOUNT="NT AUTHORITY\System" /SQLSYSADMINACCOUNTS="BUILTIN\ADMINISTRATORS" /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS && del /F /Q sqlexpress.exe && rd /q /s setup 

RUN powershell -Command \ 
     set-strictmode -version latest ; \ 
     stop-service MSSQL`$SQLEXPRESS ; \ 
     set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql12.SQLEXPRESS\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpdynamicports -value '' ; \ 
     set-itemproperty -path 'HKLM:\software\microsoft\microsoft sql server\mssql12.SQLEXPRESS\mssqlserver\supersocketnetlib\tcp\ipall' -name tcpport -value 1433 ; \ 
     start-service MSSQL`$SQLEXPRESS 

CMD powershell -Command while ($true) { Start-Sleep -Seconds 3600 } 
EXPOSE 1433 

Es basiert auf dieser: https://github.com/brogersyh/Dockerfiles-for-windows/blob/master/sqlexpress/dockerfile

+0

Ich schätze, wir können dies auf Mac, Ubuntu, etc ausführen? solange wir Docker Motor installiert haben? oder es erfordert einige andere MS-Abhängigkeiten? – Sobiaholic

+0

@Sobioholic es erfordert einen Windows-Kernel und ein Windows Server 2016-System ausgeführt werden. Unter Linux oder Mac können Sie das in einer VM ausführen. – friism

2

Follow-up auf dieser, Microsoft freigegebenen Windows Server Core 1709 mit Unterstützung für Netzwerk angeschlossene SMB-Aktien. Ich stelle auch fest, dass Windocks Docker SQL Server-Klonen von Containern, die ich mit Core 1709 getestet habe, veröffentlicht hat und jetzt ein Team mit 500 GB Datenbildern in ungefähr einer Minute bedienen kann. Sie können mehr auf Windocks bei https://windocks.com/docker-sql-server-containers sehen