LoginSignup
18
18

More than 5 years have passed since last update.

SQLServerをLinux Dockerで動かしてみる

Posted at

概要

Announcing SQL Server on Linux public preview, first preview of next release of SQL Server

Linux版のパブリックプレビュー版が出たとのこと。
それにあわせてか、Dockerの公式イメージもDockerHubに公開されていたため、さっそく試してみましたよっと。

2016年11月17日現在の状況で書いています。

参照するべきサイト

Dockerで動かす際に、以下のサイトが参考になりました。

Run the SQL Server Docker image on Linux, Mac, or Windows

実践

Dockerが動く環境は既にあるものとして進めます。
実行ユーザがdockerグループに入っていて、sudo が必要でない環境もあるかと思います。

pull

まずは、pullしましょう。

 sudo docker pull microsoft/mssql-server-linux

SQLServer起動

こいつ、動くぞ!と感動する前に、落ち着いてdocker runしましょう。

docker run -e 'ACCEPT_EULA=Y' \ 
           -e 'SA_PASSWORD=P@55w0rd' \
           -p 1433:1433 \
           -d \
           -v $(pwd):/var/opt/mssql/ \
           --name mssql \
           microsoft/mssql-server-linux

本家の記事にあるコマンドラインをそのままコピーすると、変な文字列が入っている場合があるので、貼り付けたあとは注意深く確認してください。

環境変数として、SQL認証のSAユーザに対するパスワードを設定していますが、パスワードは複雑である必要があります。

記事の下の方にこんなコメントがついてます。

It's also worth noting that the docker image requires passwords to match the SQL Server password validation rules. If they don't, the docker image will stop after around 5 seconds with no warning. P@55w0rd is a great password, for what it's worth.

単純なパスワード文字列だと、バリデーションにひっかかって、5秒後ぐらいに警告もなく終了するよ、と。(たぶん)
なので、ここでは、Peschkajさんの助言に従って、P@55w0rdとしてみました。

-vオプションでデータやログを永続化するようにしておきます。

確認

このDockerイメージには、sqlcmdコマンドラインツールが入っていないようなので、SQLServer Management Studioから接続し、起動を確認します。
MSSQL Management Studio0.png

サーバのプロパティ画面

MSSQL Management Studio.png

接続の詳細画面

MSSQL Management Studio2.png

終わりに

いろんなテストデータを作ったり消したり、ある時点のデータで環境を構築したいといったことが、とても気軽にできる点が、とても良ろしい。

既定では、言語がEnglish(United States)、照合順序はSQL_Latin1_General_CP1_CI_ASとなっています。
言語が日本語、Japanese_CI_ASとなっているようなところから、データのインポート/エクスポートでデータをコピーするようなときは、先にデータベースを言語、照合順序を指定して、作成すると良いようです。

何も考えずにインポートしたら、日本語を含むnvarcharの列が化けて入ったりしました。

18
18
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
18