Instalación de SQL Server Machine Learning Services (Python y R) en Docker

Se aplica a: SQL Server 2019 (15.x) en Linux

En este artículo se explica cómo instalar SQL Server Machine Learning Services en Docker. Puede usar Machine Learning Services para ejecutar scripts de Python y R en la base de datos. No se proporcionan contenedores precompilados con Machine Learning Services. Puede crear uno a partir de los contenedores de SQL Server mediante una plantilla de ejemplo disponible en GitHub.

Prerequisites

  • Interfaz de la línea de comandos de Git.

  • Motor de Docker 1.8 o versiones posteriores en cualquier distribución de Linux admitida. Para más información, vea Get Docker (Obtención de Docker). Los contenedores de SQL Server no son compatibles con Windows o macOS para uso en producción.

  • Vea también los requisitos del sistema para SQL Server en Linux.

Clonación del repositorio mssql-docker

El siguiente comando clona el mssql-docker repositorio Git en un directorio local.

  1. Abre un terminal Bash en Linux o macOS.

  2. Cambia al directorio donde quieres crear el repositorio local mssql-docker .

  3. Ejecuta el comando Git clone para clonar el mssql-docker repositorio:

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

Compila y ejecuta una imagen de contenedor Linux de SQL Server

Completa los siguientes pasos para construir y ejecutar la imagen Docker:

  1. Cambie el directorio al directorio mssql-mlservices:

    cd mssql-docker/linux/preview/examples/mssql-mlservices
    
  2. En el mismo directorio, ejecute el comando siguiente:

    docker build -t mssql-server-mlservices .
    

    Note

    Para construir la imagen Docker, debes instalar paquetes de varios GB. El script puede tardar algún tiempo en terminar de ejecutarse, en función del ancho de banda de red.

  3. Ejecute el contenedor:

    Importante

    La variable de entorno SA_PASSWORD está en desuso. Utilice MSSQL_SA_PASSWORD en su lugar.

    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

    Cualquiera de los valores admitidos se puede usar para MSSQL_PID. Si usa una edición de pago, asegúrese de que ha adquirido una licencia. Reemplace <password> por la contraseña real. El montaje de volúmenes con -v es opcional. Reemplace <directory on the host OS> por un directorio real en el que quiera montar los archivos de registro y datos de la base de datos.

Verifica el contenedor de Linux de SQL Server

docker ps -a

Ejecución de la imagen de contenedor de SQL Server para Linux

  1. Establezca las variables de entorno antes de ejecutar el contenedor. Establezca la variable de entorno PATH_TO_MSSQL en un directorio host:

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

    Note

    El proceso para ejecutar ediciones de producción de SQL Server en contenedores es ligeramente diferente. Para obtener más información, consulte Implementación y conexión a contenedores de Linux de SQL Server. Si usa los mismos nombres y puertos de contenedor, el resto de este tutorial funciona con los contenedores de producción.

  2. Para ver los contenedores, ejecute el comando docker ps:

    sudo docker ps -a
    
  3. Si la columna ESTADO muestra el estado Activo, SQL Server se está ejecutando en el contenedor y está escuchando en el puerto especificado en la columna PUERTOS. Si la columna STATUS del contenedor de SQL Server muestra Salir, consulte solución de problemas de contenedores de Docker de SQL Server.

    Output:

    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
    

Habilitar Machine Learning Services

Para habilitar Machine Learning Services, conéctate a tu instancia de SQL Server y ejecuta la siguiente Transact-SQL sentencia:

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