はじめに
Docker で立ち上げた SQL Server へ向けて、SSMS を使って接続してみました。
意外なところで沼ったので、備忘録として残しておきます。
構成
構成はこんな感じ。
.NET 系の Web システムを Linux 上で動かす構成を考えていたら、こうなってしまいました。
デバッグ (というか動作確認) は実環境に合わせて VirtualBox の Ubuntu に構築するとして、ビジュアル的に SQL Server を操作するには SSMS が必要になりました。
(僕がコマンドライン上で SQL Server を扱うのが苦手というのは内緒)
そこで、VirtualBox の Windows に SSMS をインストール (メインPC は汚したくなかった) し、そこから Docker Container の SQL Server へ接続する必要が出てきました。
SQL Server の立ち上げ
まず、Docker で SQL Server を立ち上げます。
sqlserver:
image: mcr.microsoft.com/mssql/server:2019-latest
ports:
- "1433:1433"
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=Password123!
最低限の構成は意外とシンプル。
テスト用なのでポートフォワーディングやらパスワードやらは簡単なものでOK。
(外部からは接続させず、Docker 内で接続を完結させるならこのままでもいい気はします)
SSMS を使った接続
まずは、ログイン情報を設定します。
- Server name: 192.168.x.y,1433
- Authentication: SQL Server Authentication
- Login: sa
- Password: Password123!
サーバー名はメインPC (VirtualBox で VM を立ち上げているマシン) のホスト名とポートを指定します。
(ポートが :
ではなく ,
で区切る必要があるところで軽く沼りました)
ログイン名は既定の sa (System Administrator) を指定します。
次に、追加の接続パラメータを設定します。
TrustServerCertificate=True
(この設定が無いことで沼り散らかしました)
後は接続するだけ!
トラブルシューティング
接続できない時は、Windows の VM 内で Test-NetConnection -ComputerName 192.168.x.y -Port 1433
で接続を検証したり、Linux の VM内で docker ps
で起動を確認したり、docker logs <ContainerID>
でログを確認したりします。
(まぁ沼ってた時はこれらは通っていたので、かなり苦しみました…)
終わりに
.NET 系のデバッグ、動作確認は Linux 上で行い、開発、DB の確認は Windows 上で行うという構成に一歩近付けたと思います。
やはり DB の中身はビジュアル的に見たいですからね! (←逃げとか言わないでほしい)
また、今回はかなーり Chat GPT 助けられました。
エラーの詳細情報をそのまま貼り付けて「どこがおかしい!?」と何回も聞きまくりました。
何回聞いても嫌な顔せず考えてくれるのは本当に心強いです。
今後も AI を活用しながら、自前サービスを時短でゴリゴリ作っていきたいですね!