私は、Windows コンテナーを介して Windows Server 2016 TP5 で SQL Server 2014 Express を実行できるように取り組んできました。
こちらのガイドラインに従った後、Sql Server Express でコンテナーを開始し、データベースをアタッチすることができます。
私の完全なdocker run
コマンド:
docker run -p 1433:1433 -v C:/temp/:C:/temp/ --env sa_password=xxxx --env attach_dbs="[{'dbName': 'Docker', 'dbFiles': ['C:\\temp\\Docker.mdf', 'C:\\temp\\Docker_log.ldf']}]" microsoft/msslq-server-2014-express-windows
ただし、ホスト VM (Server 2016) 上の SSMS をコンテナーの SQL Server Express インスタンスに接続しようとすると、どの部分が欠けているのかわかりません。
コマンドで SQL Server の既定のポート (1433) を使用していますdocker run
。
ホスト VM の Docker バージョンは次のとおりです。1.12.1, build 23cf638
Window Server 2016 TP5 ビルドは次のとおりです。14300.rs1_release_sv.160907-0755
実行すると、コンテナーで 1433 がリッスンされているが、ホスト VM で 1433 がリッスンされてnetstat -a
いないことが確認されます。
コンテナーの実行docker ps
中に実行すると、ポート 1433 が次のようにマップされていることが確認されます。0.0.0.0:1433->1433/tcp
ホスト VM 上の SSMS 経由でコンテナー内の SQL Server インスタンスに接続するには、sa
ユーザーを使用し、次の PowerShell で取得したコンテナーの内部 IP アドレスでパスワードを設定します。
docker inspect --format "{{ .NetworkSettings.Networks.nat.IPAddress }}" <containerid>
残念ながら、SSMS はインスタンスを見つけることができず、何が間違っているのかわかりません。