Docker MS SQL Server 2017 for linux
Docker用SQL Server 2017を起動してみる。
参考:https://docs.microsoft.com/ja-jp/sql/linux/quickstart-install-connect-docker
Dockerのメモリを4GB にする必要がある。
- 最上位のステータス バーに Docker ロゴをクリックします。
- 選択設定です。
- メモリ インジケーターを 4GB 以上に移動します。
- クリックして、再起動画面のボタンをクリックします。
Sql Server 2017の最新イメージをダウンロードする。
$ docker pull microsoft/mssql-server-linux:2017-latest 2017-latest: Pulling from microsoft/mssql-server-linux aed15891ba52: Pull complete 773ae8583d14: Pull complete d1d48771f782: Pull complete cd3d6cd6c0cf: Pull complete 8ff6f8a9120c: Pull complete 1fd7e8b10447: Pull complete bd485157db89: Pull complete 273a1970ce9c: Pull complete 006581b3a024: Pull complete 25c54ac351f0: Pull complete Digest: sha256:77ebcec549076994f93ab85c5ce194e85366d9bcd124c53e1347660edd315666 Status: Downloaded newer image for microsoft/mssql-server-linux:2017-latest
コンテナの作成/実行
$ docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' -e 'MSSQL_PID=Developer' -p 1433:1433 --name sql1 -d microsoft/mssql-server-linux:2017-latest
※ポートフォワードは1433を指定しないとManagementStudioから繋がらなかった。
バックアップファイルからの復元
ManagementStudioから見た感じ、「/var/opt/mssql/data」しか接近が許可されていなかったため、ホストから、指定フォルダーにバックアップファイルをコピーする。
$ docker cp /work/mssql.bak sql1:/var/opt/mssql/data
ManagementStudioから復元
普通に出来たので、説明は不要かな…
ManagementStudio以外でSQL Serverへ接続する方法
復元済みのバックアップファイルを削除している。
$ docker exec -it sql1 "bash" $ rm /var/opt/mssql/data/mssql.bak
sqlcmdの実行
Pathは設定されていないため、直接実行する。
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '<YourNewStrong!Passw0rd>'
DBの作成
DBの照合順序はデフォルト「Latin1_General_100_CS_AS_SC」で有るため、日本語用に指定して作成しないと日本語が文字化けする。
USE master; GO IF DB_ID (N'MyOptionsTest') IS NOT NULL DROP DATABASE MyOptionsTest; GO CREATE DATABASE MyOptionsTest COLLATE Japanese_XJIS_100_CI_AI_WS; GO