| 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 | cawrites |
| ms.author | chadam |
| ms.reviewer | davidph |
| manager | cgronlun |
| ms.date | 03/23/2020 |
| ms.topic | conceptual |
| ms.prod | sql |
| ms.technology | machine-learning |
| monikerRange | >=sql-server-ver15||>=sql-server-linux-ver15||=sqlallproducts-allversions |
[!INCLUDEappliesto-ss-xxxx-xxxx-xxx-md-linuxonly]
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 do not provide pre-built containers with Machine Learning Services. You can create one from the SQL Server containers using an example template available on GitHub.
-
Git command-line interface.
-
Docker Engine 1.8+ on any supported Linux distribution, or Docker for Mac/Windows. For more information, see Get Docker.
-
See also the system requirements for SQL Server on Linux.
The following command clones the mssql-docker git repository to a local directory.
-
Open a Bash terminal on Linux or Mac, or open a Windows Subsystem for Linux terminal on Windows.
-
Create a directory to hold a local copy of the mssql-docker repository.
-
Run the git clone command to clone the mssql-docker repository:
git clone https://github.com/microsoft/mssql-docker mssql-docker
Complete the following steps to build the docker image:
-
Change the directory to the mssql-mlservices directory:
/opt/mssql/mlservices
-
In the same directory, run the following command:
docker build -t mssql-server-mlservices
-
Run the command:
docker runs -d -e MSSQL_PID=Developer -e ACCEPT_EULA=Y -e ACCEPT_EULA_ML=Y -e SA_PASSWORD=<your_sa_password> -v OS>:/var/opt/mssql -p 1433:1433 mssql-server-mlservices
Change
<your_sa_password>inSA_PASSWORD=<your_sa_password>and change the-vpath. -
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 may take some time to finish running, depending on network bandwidth.
-
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/'
-
Run the run.sh script:
./run.sh
This command creates a SQL Server container with Machine Learning Services, using the Developer edition (default). SQL Server port 1433 is exposed on the host as port 1401.
[!NOTE] The process for running production SQL Server editions in containers is slightly different. For more information, see Configure SQL Server container images on Docker. If you use the same container names and ports, the rest of this walkthrough still works with production containers.
-
To view your Docker containers, run the
docker pscommand:sudo docker ps -a
-
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 Troubleshooting section of the configuration guide.
$ sudo docker ps -a
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
To enable Machine Learning Services, connect to your SQL Server instance and run the following T-SQL statement:
EXEC sp_configure 'external scripts enabled', 1;
RECONFIGURE WITH OVERRIDEPython developers can learn how to use Python with SQL Server by following these tutorials:
- Python tutorial: Predict ski rental with linear regression in SQL Server Machine Learning Services
- Python tutorial: Categorizing customers using k-means clustering with SQL Server Machine Learning Services
R developers can get started with some simple examples, and learn the basics of how R works with SQL Server. For your next step, see the following links: