Docker に SQL Server Machine Learning Services (Python と R) をインストールする
適用対象: SQL Server 2019 (15.x) - Linux
この記事では、Docker に SQL Server Machine Learning Services をインストールする方法について説明します。 Machine Learning Services を使用して、データベース内で Python または R スクリプトを実行できます。 Machine Learning Services では、事前構築済みのコンテナーは提供されません。 GitHub で入手できるテンプレートの例使用して、SQL Server コンテナーから作成できます。
前提条件
Git のコマンド ライン インターフェイス。
サポートされている Linux ディストリビューションの Docker エンジン 1.8 以降。 詳細については、「Get Docker」を参照してください。 コンテナー内の SQL Server は、運用環境で使用するために Windows または macOS ではサポートされていません。
「SQL Server on Linux のシステム要件」も参照してください。
mssql-docker リポジトリをクローンする
次のコマンドによって mssql-docker
git リポジトリがローカル ディレクトリにクローンされます。
Linux または Mac で Bash ターミナルを開きます。
mssql-docker リポジトリのローカル コピーを保持するディレクトリを作成します。
git clone コマンドを実行して、mssql-docker リポジトリを複製します。
git clone https://github.com/microsoft/mssql-docker mssql-docker
SQL Server の Linux コンテナー イメージをビルドする
次の手順で Docker イメージをビルドします。
ディレクトリを mssql-mlservices ディレクトリに変更します。
/mssql-docker/linux/preview/examples/mssql-mlservices
同じディレクトリで、次のコマンドを実行します。
docker build -t mssql-server-mlservices .
次のコマンドを実行します。
重要
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には、開発者 (無料)、Express (無料)、Enterprise (有料)、Standard (有料) のいずれかの値を使用できます。 有料エディションを使用する場合は、ライセンスを購入していることを確認します。
<password>
を実際のパスワードに置き換えます。-v
を使用したボリュームマウントはオプションです。<directory on the host OS>
を、データベース データファイルとログ ファイルをマウントする実際のディレクトリに置き換えます。次のコマンドを実行して確認します。
docker ps -a
注意
Docker イメージをビルドするには、サイズが数 GB のパッケージをいくつかインストールする必要があります。 このスクリプトは、ネットワークの帯域幅によっては完了までに時間がかかることがあります。
SQL Server Linux コンテナー イメージを実行する
コンテナーを実行する前に環境変数を設定します。 PATH_TO_MSSQL 環境変数をホスト ディレクトリに設定します。
export MSSQL_PID='Developer' export ACCEPT_EULA='Y' export ACCEPT_EULA_ML='Y' export PATH_TO_MSSQL='/home/mssql/'
注意
SQL Server の実稼働エディションをコンテナーで実行するプロセスは、若干異なります。 詳細については、「Docker で SQL Server コンテナーイメージを構成する」を参照してください。 同じコンテナー名とポートを使う場合でも、このチュートリアルの残りの部分を引き続き実稼働のコンテナーに適用できます。
コンテナーを表示するには、
docker ps
コマンドを実行します。sudo docker ps -a
[STATUS] 列に表示されている状態が [Up] の場合、SQL Server はコンテナーで実行されており、[PORTS] 列で指定されているポートでリッスンしています。 SQL Server コンテナーの [STATUS] 列に [Exited] と表示されている場合は、構成ガイドのトラブルシューティングのセクションを参照してください。
出力:
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
Machine Learning Services を有効にする
Machine Learning Services を有効にするには、SQL Server インスタンスに接続し、次の T-SQL ステートメントを実行します。
EXECUTE sp_configure 'external scripts enabled', 1;
RECONFIGURE WITH OVERRIDE;
関連するコンテンツ
- Python チュートリアル: SQL 機械学習 を使用して線形回帰モデルをデプロイする
- Python チュートリアル: SQL 機械学習 を使用して k-means クラスタリングを使用して顧客を分類する
- クイック スタート: SQL 機械学習 を使用して簡単な R スクリプトを実行する
- R チュートリアル: 二項分類 を使用して NYC タクシー料金を予測する