在 Docker 上安装 SQL Server 机器学习服务(Python 和 R)

适用于: SQL Server 2019 (15.x) - Linux

本文介绍如何在 Docker 上安装 SQL Server 机器学习服务。 可使用机器学习服务在数据库中执行 Python 和 R 脚本。 我们不向机器学习服务提供预建容器。 你可以使用 GitHub 上的可用示例模板在 SQL Server 容器中创建一个。

先决条件

  • Git 命令行接口。

  • 任何受支持的 Linux 发行版上的 Docker 引擎 1.8 及更高版本。 有关详细信息,请参阅了解 Docker。 Windows 或 macOS 不支持容器中的 SQL Server 供生产使用。

  • 另请参阅 Linux 上的 SQL Server 的系统要求

克隆 mssql-docker 存储库

以下命令将 mssql-docker git 存储库克隆到本地目录。

  1. 打开 Linux 或 Mac 上的 Bash 终端。

  2. 创建一个目录来保存 mssql-docker 存储库的本地副本。

  3. 运行 git clone 命令,以克隆 mssql-docker 存储库:

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

构建 SQL Server Linux 容器映像

完成以下步骤以生成 docker 映像:

  1. 将目录更改为 mssql-mlservices 目录:

    /mssql-docker/linux/preview/examples/mssql-mlservices
    
  2. 在同一目录中,运行以下命令:

    docker build -t mssql-server-mlservices .
    
  3. 运行以下命令:

    重要说明

    SA_PASSWORD 环境变量已弃用。 改用 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
    

    注意

    以下任何值都可用于MSSQL_PID:开发人员(免费)、快速(免费)、企业版(付费)、标准(付费)。 如果使用付费版本,请确保已购买许可证。 将 <password> 替换为您的实际密码。 使用 -v 的卷装载是可选的。 将 <directory on the host OS> 替换为您希望用来装载数据库数据和日志文件的实际目录。

  4. 通过运行以下命令进行确认:

    docker ps -a
    

    注意

    必须安装几个 GB 大小的包,才能生成 Docker 映像。 此脚本可能需要一段时间才能完成运行,具体视网络带宽而定。

运行 SQL Server Linux 容器映像

  1. 先设置环境变量,再运行容器。 将 PATH_TO_MSSQL 环境变量设置为主机目录:

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

    注意

    在容器中运行 SQL Server 生产版本的过程略有不同。 有关详细信息,请参阅部署并连接到 SQL Server Linux 容器。 如果使用相同的容器名称和端口,本教程的其余部分仍适用于生产容器。

  2. 若要查看容器,请运行 docker ps 命令:

    sudo docker ps -a
    
  3. 如果状态列显示正常运行状态,表明 SQL Server 正在容器中运行,且正在侦听端口列中指定的端口。 如果 SQL Server 容器的 STATUS 列显示 “已退出”,请参阅 SQL Server Docker 容器疑难解答

    输出:

    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
    

启用机器学习服务

若要启用机器学习服务,请连接到 SQL Server 实例,并运行以下 T-SQL 语句:

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