Skip to content

Latest commit

 

History

History
127 lines (87 loc) · 5.55 KB

File metadata and controls

127 lines (87 loc) · 5.55 KB
title Install on Docker
titleSuffix SQL Server Machine Learning Services
description Learn how to install SQL Server Machine Learning Services (Python and R) on Docker.
author rwestMSFT
ms.author randolphwest
ms.date 07/03/2025
ms.service sql
ms.subservice machine-learning-services
ms.topic how-to
monikerRange =sql-server-ver15 || =sql-server-linux-ver15
ms.custom
intro-installation
linux-related-content
sfi-ropc-blocked

Install SQL Server Machine Learning Services (Python and R) on Docker

[!INCLUDE SQL Server 2019 - Linux]

This article explains how to install SQL Server Machine Learning Services on Docker. You can use Machine Learning Services to execute Python and R scripts in-database. We don't provide pre-built containers with Machine Learning Services. You can create one from the SQL Server containers using an example template available on GitHub.

Prerequisites

Clone the mssql-docker repository

The following command clones the mssql-docker git repository to a local directory.

  1. Open a Bash terminal on Linux or Mac.

  2. Create a directory to hold a local copy of the mssql-docker repository.

  3. Run the git clone command to clone the mssql-docker repository:

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

Build a SQL Server Linux container image

Complete the following steps to build the docker image:

  1. Change the directory to the mssql-mlservices directory:

    /mssql-docker/linux/preview/examples/mssql-mlservices
  2. In the same directory, run the following command:

    docker build -t mssql-server-mlservices .
  3. Run the command:

    [!IMPORTANT]
    The SA_PASSWORD environment variable is deprecated. Use MSSQL_SA_PASSWORD instead.

    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

    [!INCLUDE editions-sql-server-developer]

    [!NOTE]
    Any of the supported values can be used for MSSQL_PID. If you use a paid edition, ensure that you have purchased a license. Replace <password> with your actual password. Volume mounting using -v is optional. Replace <directory on the host OS> with an actual directory where you want to mount the database data and log files.

  4. Confirm by running the following command:

    docker ps -a

    [!NOTE]
    To build the Docker image, you must install packages that are several GBs in size. The script might take some time to finish running, depending on network bandwidth.

Run the SQL Server Linux container image

  1. Set your environment variables before running the container. Set the PATH_TO_MSSQL environment variable to a host directory:

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

    [!NOTE]
    The process for running production SQL Server editions in containers is slightly different. For more information, see Deploy and connect to SQL Server Linux containers. If you use the same container names and ports, the rest of this walkthrough still works with production containers.

  2. To view your containers, run the docker ps command:

    sudo docker ps -a
  3. If the STATUS column shows a status of Up, SQL Server is running in the container and listening on the port specified in the PORTS column. If the STATUS column for your SQL Server container shows Exited, see the Troubleshoot SQL Server Docker containers.

    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
    

Enable Machine Learning Services

To enable Machine Learning Services, connect to your SQL Server instance and run the following T-SQL statement:

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

Related content