適用対象: Linux 上の SQL Server 2019 (15.x)
この記事では、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やmacOSでBash端末を開いてみてください。
ローカル
mssql-dockerリポジトリを作成したいディレクトリに変更してください。Gitクローンコマンドを実行して
mssql-dockerリポジトリをクローンしてください:git clone https://github.com/microsoft/mssql-docker mssql-docker
SQL Server Linuxコンテナイメージを構築・実行
Dockerイメージを構築し実行するために、以下の手順を踏みます:
ディレクトリを mssql-mlservices ディレクトリに変更します。
cd mssql-docker/linux/preview/examples/mssql-mlservices同じディレクトリで、次のコマンドを実行します。
docker build -t mssql-server-mlservices .Note
Dockerイメージを構築するには、数GBサイズのパッケージをインストールする必要があります。 このスクリプトは、ネットワークの帯域幅によっては完了までに時間がかかることがあります。
コンテナーを実行します。
Important
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-mlservicesNote
サポートされている値は、
MSSQL_PIDに使用できます。 有料エディションを使用する場合は、ライセンスを購入していることを確認します。<password>を実際のパスワードに置き換えます。-vを使用したボリュームマウントはオプションです。<directory on the host OS>を、データベース データファイルとログ ファイルをマウントする実際のディレクトリに置き換えます。
SQL Server Linuxコンテナの確認
docker ps -a
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 の実稼働エディションをコンテナーで実行するプロセスは、若干異なります。 詳細については、「SQL Server Linux コンテナーの配置と接続」を参照してください。 同じコンテナー名とポートを使う場合でも、このチュートリアルの残りの部分を引き続き実稼働のコンテナーに適用できます。
コンテナーを表示するには、
docker psコマンドを実行します。sudo docker ps -a[STATUS] 列に表示されている状態が [Up] の場合、SQL Server はコンテナーで実行されており、[PORTS] 列で指定されているポートでリッスンしています。 SQL Server コンテナーの STATUS 列に Exited と表示される場合は、「 SQL Server Docker コンテナーのトラブルシューティング」を参照してください。
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
Machine Learning Services を有効にする
Machine Learningサービスを有効にするには、SQL Serverインスタンスに接続し、以下の Transact-SQL 文を実行します。
EXECUTE sp_configure 'external scripts enabled', 1;
RECONFIGURE WITH OVERRIDE;