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 の値には、次の値のいずれかを使用できます:Developer (無料)、Express (無料)、Enteprise (有料)、Standard (有料)。 有料エディションを使用している場合は、ライセンスを購入していることを確認してください。 (パスワード) は、実際のパスワードで置き換えてください。 -v を使用したボリューム マウントはオプションです。 (ホスト 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/'
Note
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 ステートメントを実行します。
EXEC sp_configure 'external scripts enabled', 1;
RECONFIGURE WITH OVERRIDE
関連するコンテンツ
Python 開発者は、次のチュートリアルに従って、SQL Server で Python を使用する方法を学習できます。
- Python のチュートリアル:SQL Server Machine Learning Services での線形回帰を使用したスキー レンタルの予測
- Python のチュートリアル:SQL Server Machine Learning Services と K-Means クラスタリングを使用して顧客を分類する
R 開発者はいくつかの簡単な例を試して、SQL Server での R の動作方法の基本を確認できます。 次の手順については、以下のリンクを参照してください。