Installieren von SQL Server Machine Learning Services (Python und R) in Docker

Gilt für: SQL Server 2019 (15.x) unter Linux

In diesem Artikel wird die Installation von SQL Server Machine Learning Services in Docker erläutert. Sie können Machine Learning Services verwenden, um Python- und R-Skripts in einer Datenbank auszuführen. Wir stellen keine vordefinierten Container mit Machine Learning Services bereit. Sie können einen Container mithilfe einer Beispielvorlage auf GitHub aus den SQL Server-Containern erstellen.

Voraussetzungen

  • Git-Befehlszeilenschnittstelle.

  • Docker Engine 1.8 oder höher unter einer beliebigen unterstützten Linux-Distribution. Weitere Informationen finden Sie unter "Docker abrufen". SQL Server-Container werden unter Windows oder macOS für die Produktionsnutzung nicht unterstützt.

  • Siehe auch die Systemanforderungen für SQL Server unter Linux.

Klonen des mssql-docker-Repositorys

Der folgende Befehl klont das mssql-docker Git-Repository in ein lokales Verzeichnis.

  1. Öffne ein Bash-Terminal unter Linux oder macOS.

  2. Wechsle in das Verzeichnis, in dem du das lokale mssql-docker Repository erstellen möchtest.

  3. Führe den Git-Klon-Befehl aus, um das mssql-docker Repository zu klonen:

    git clone https://github.com/microsoft/mssql-docker mssql-docker
    

Baue und führe ein SQL Server Linux-Container-Image aus

Führen Sie die folgenden Schritte durch, um das Docker-Image zu erstellen und auszuführen:

  1. Wechseln Sie zum Verzeichnis „mssql-mlservices“:

    cd mssql-docker/linux/preview/examples/mssql-mlservices
    
  2. Führen Sie im gleichen Verzeichnis den folgenden Befehl aus:

    docker build -t mssql-server-mlservices .
    

    Note

    Um das Docker-Image zu erstellen, müssen Sie Pakete installieren, die mehrere GB groß sind. Abhängig von der Netzwerkbandbreite kann es einige Zeit dauern, bis die Skriptausführung abgeschlossen ist.

  3. Starten Sie den Container:

    Important

    Die Umgebungsvariable SA_PASSWORD ist veraltet. Verwenden Sie stattdessen MSSQL_SA_PASSWORD.

    docker run -d -e MSSQL_PID=Developer -e ACCEPT_EULA=Y -e ACCEPT_EULA_ML=Y -e MSSQL_SA_PASSWORD=<password> -v <directory on the host OS>:/var/opt/mssql -p 1433:1433 mssql-server-mlservices
    

    Note

    Jeder unterstützte Wert kann für MSSQL_PID verwendet werden. Wenn Sie eine kostenpflichtige Edition verwenden, stellen Sie sicher, dass Sie eine Lizenz erworben haben. Ersetzen Sie <password> durch Ihr tatsächliches Kennwort. Das Volume-Mounting mit -v ist optional. Ersetzen Sie es <directory on the host OS> durch ein tatsächliches Verzeichnis, in dem Sie die Datenbankdaten und Protokolldateien bereitstellen möchten.

Überprüfen Sie den SQL Server Linux-Container

docker ps -a

SQL Server-Linux-Containerimage ausführen

  1. Legen Sie vor dem Ausführen des Containers Ihre Umgebungsvariablen fest. Legen Sie PATH_TO_MSSQL-Umgebungsvariable auf ein Hostverzeichnis fest:

    export MSSQL_PID='Developer'
    export ACCEPT_EULA='Y'
    export ACCEPT_EULA_ML='Y'
    export PATH_TO_MSSQL='/home/mssql/'
    

    Note

    Die Vorgehensweise zum Ausführen von SQL Server-Produktionseditionen in Containern weicht hiervon minimal ab. Mehr Informationen finden Sie unter Bereitstellen von und Herstellen einer Verbindung mit SQL Server in Linux-Containern. Wenn Sie dieselben Containernamen und Ports verwenden, funktioniert der Rest dieser Anleitung auch mit Produktionscontainern.

  2. Führen Sie den Befehl docker ps aus, um Ihre Container anzuzeigen:

    sudo docker ps -a
    
  3. Wenn die Spalte STATUS den Wert Up (Aktiv) enthält, wird SQL Server im Container ausgeführt und überwacht den in der Spalte PORTS angegebenen Port. Wenn die Spalte STATUS für Ihren SQL Server-Container beendet angezeigt wird, lesen Sie die Problembehandlung für SQL Server Docker-Container.

    Ausgabe:

    CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                    NAMES
    941e1bdf8e1d        mcr.microsoft.com/mssql/server/mssql-server-linux   "/bin/sh -c /opt/m..."   About an hour ago   Up About an hour     0.0.0.0:1401->1433/tcp   sql1
    

Aktivieren von Machine Learning Services

Um Machine Learning Services zu aktivieren, verbinden Sie sich mit Ihrer SQL Server-Instanz und führen Sie folgende Transact-SQL-Anweisung aus:

EXECUTE sp_configure 'external scripts enabled', 1;
RECONFIGURE WITH OVERRIDE;